C++ Problem mit Detourung [gelöst, bitte schließen]



  • EDIT: Habs schon gelöst. Ich hab vergessen das ebp-24 in hexa form ist, d.h. es müsste ebp-36 heißen

    Hallo liebe cpp Comunity,

    ich versuche einen Detour für eine Serveranwendung zu schreiben.

    Folgendes soll mein Detour bezwecken:
    - Ziel ist es, statt der eine Zeile des Orginal Codes, meinen eigenen Code auszuführen.

    Meine Überlegung: ich detoure eine Zeile nach der Orginalzeile und überschreibe dabei den Orginalen Werd mit meinem und lasse dann den Orginalcode weiterarbeiten.

    Mein Ansatz:

    static void (__cdecl *CMonster_Create)() = (void (__cdecl*)())0x004401D1;
    
    	void __cdecl Hooked_CMonster_Create()
    	{
    		cout<<"Monster is spawning!"<<endl;
    		__asm mov [ebp-24],016h
                    CMonster_Create();}
    

    Wenn ich den Wert von [ebp-24] über ida manuel ändere funktioniert es, aber mein Scripit hier leider nicht. Was mache ich falsch?

    IDA view:
    http://www.directupload.net/file/d/3771/47vhxyf9_jpg.htm
    MfG
    Barry


Anmelden zum Antworten