Einzelnen Beitrag anzeigen

Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#43

Re: Adresse einer Funktion ohne @ ermitteln (evtl über CS:IP

  Alt 17. Dez 2007, 16:50
Irgendwie reden wir da wohl an einander vorbei. Du sollst nur folgenden Schritt zusätzlich implementieren:

Alt:
Setze Startadresse auf $00400000, kopiere Kram rüber und los geht's.

Neu:
Hole Startadresse aus dem Image der Exe in deren Prozess injiziert werden soll, kopiere Kram rüber und los geht's.

Wo ist denn da das Problem?

Edith sagt:
BaseAddress := VirtualAllocEx(ProcessInfo.hProcess, Pointer(NtHeaders.OptionalHeader.ImageBase), NtHeaders.OptionalHeader.SizeOfImage, MEM_RESERVE or MEM_COMMIT, PAGE_READWRITE); Da holst Du doch die Baseaddress, sorg einfach dafür, dass das die Base wird, die zur Ziel-Exe passt Im Code fehlt auch an etlichen Stellen Fehlerbehandlung, gerade Sachen wie VirtualAllocEx und VirtualProtectEx sollte man nicht in "fire and forget"-Manier benutzen sondern immer akribisch auch die Rückgabewerte checken.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat