Asm und Call
Verfasst: 06.04.2007 13:43
Hi,
ich habe ein Problem mit der Call-Instruktion in Assembler. Und zwar will ich Code in einen fremden Prozess injizieren, der dort Parameter auf den Stack pusht und dann eine Prozedur per Call aufruft.
Im Prinzip funktioniert alles, nur nicht der Call, der springt zur falschen Addresse. Wenn ich mir den Hexdump von Calls anschaue, sehe ich das die Addresse dort nicht direkt angeben ist, sondern relativ. Meine Frage ist nun wie kann ich den Call errechnen so das er zur gewünschten Addresse springt. Das muss ja anhand der Zieladdresse und der Addresse des Opcodes des Calls machbar sein. Beides hab ich, die Addresse des Opcodes ist allerdings variabel, das heisst der Call müsste halt immer neu errechnet werden.
ich habe ein Problem mit der Call-Instruktion in Assembler. Und zwar will ich Code in einen fremden Prozess injizieren, der dort Parameter auf den Stack pusht und dann eine Prozedur per Call aufruft.
Im Prinzip funktioniert alles, nur nicht der Call, der springt zur falschen Addresse. Wenn ich mir den Hexdump von Calls anschaue, sehe ich das die Addresse dort nicht direkt angeben ist, sondern relativ. Meine Frage ist nun wie kann ich den Call errechnen so das er zur gewünschten Addresse springt. Das muss ja anhand der Zieladdresse und der Addresse des Opcodes des Calls machbar sein. Beides hab ich, die Addresse des Opcodes ist allerdings variabel, das heisst der Call müsste halt immer neu errechnet werden.