Asm und Call

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Asm und Call

Beitrag 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.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

Problem gelöst. Wenn man dem Call als Parameter statt einer Konstante ein Register verpasst, dann ist die Addresse liniear. :mrgreen:
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Antworten