Dll-Injektion. Ausführen CreateRemoteThread mit parameter

Ich schrieb dll-Injektion-Programm, das funktioniert gut. Lädt die dll in den remote-Prozess und ruft eine Funktion. Nun möchte ich weitergeben argument für diese Funktion. CreateRemoteThread hat lpParameter, aber wie bekommen die das übergebene argument innerhalb der dll, um es in Funktion?

Update:
dll Einstiegspunkt ist üblich:

BOOL APIENTRY DllMain( HANDLE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved)

Dll enthält nur eine Funktion mit folgendem Prototyp:

void TestFunction(const char* ua);

Den Code zum aufrufen der Funktion ist:

CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)((void*)codecaveExecAddr), (LPVOID)argumentAddress, 0, NULL);

Wie Sie sehen, kann ich versuchen, geben Sie "test" string im inneren TestFunction. Aber dann habe ich überprüfen ua argument innerhalb TestFunction es enthält einige trash.

Hier sind die ganzen Projekt-Dateien:

http://pastebin.com/gh4SnhmV

http://pastebin.com/Sq7hpSVx

http://pastebin.com/dvgXpUYz

UPDATE 2

Sollte TestFunction bestimmten propotype oder kann ich jede verwenden, solange es nur einen parameter von Typ LPVOID? Ich bin verwirrt. Kann mir jemand ein Beispiel nennen, injiziert dll-Funktion mit Argumente?

  • Wirken, dereferenzieren, verwenden Sie es.
  • SB tut mir Leid, ich verstehe nicht, was du meinst. cast, was?
  • Sorry, ich war als Scherz gedacht. Sie stellte eine Frage mit null details oder code und erwartet uns zu wissen, was in deinem Geist, und so gab ich eine Antwort in dem gleichen Geist. Die wirkliche Antwort ist, "poste deinen code und spezifisch".
  • SB gab ich alle Angaben um meine Frage zu beantworten. Es gibt keine post müssen ganzen dll-code hier ein, da der Algorithmus der passing argument dll mit CreateRemoteThread und extrahieren es in der dll bleibt das gleiche. Ihre Antwort war nicht schlau.
InformationsquelleAutor clumpter | 2011-07-05
Schreibe einen Kommentar