Seite 1 von 1

Asm und Call

Verfasst: 06.04.2007 13:43
von Thorium
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.

Verfasst: 06.04.2007 15:16
von Thorium
Problem gelöst. Wenn man dem Call als Parameter statt einer Konstante ein Register verpasst, dann ist die Addresse liniear. :mrgreen: