Problem mit dll injection [ERLEDIGT]
-
Habs hingekriegt.
ERLEDIGT
-
Wie hast du es denn hinbekommen? (Hab das Selbe Problem)
-
Wie schön, dass ihr mein Posting ignoriert. Naja, wenn euch der Frickelweg lieber ist als 4 und 7 Zeilen...

-
Danke Croker, jetzt gehts. (Ich hatte deinen Post glatt übersehen)
Ist es normal, das wenn das zu infizierende Programm in einer Schleife läuft, der eingeschläußte code nur einmal ausgeführt wird?
-
Lt. Code soll er das doch.
-
Und wie muß ich das abändern, damit das jedesmal duchlaufenwird?
-
Was meinst du?
Sobald die DLL in den Prozess gemapped wurde, wird DllMain mit "reason == DLL_PROCESS_ATTACH" aufgerufen.
-
Hi Crocker,
ich weiß nicht so genau ob das überhaupt gehr was ich möchte (Ich bin ja schon froh das ich es jetzt hinbekommen habe. Auch den Frickelweg habe ich zum laufen gebracht
)Also ich möchte, dass die dll so eingeladen wird, das sie im infizierten Programm immer wieder aufgerufen wird.
Also wenn das zu infizierende Programm so aussieht.
int main () { while (true) { Sleep(6000); cout << "alles ok"; } return 0; }und die DLL so:
BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { return TRUE; } void Funktion() { cout << "infiziert"; }Dann passiert bisher folgendes:
Ausgabe: alles ok alles ok alles ok infiziert alles ok alles ok alles ok...Das infiziert kommt genau einmal zu dem zeitpunkt zu dem ich das injection Programm aufrufe.
Nun hätte ich aber gerne, das Folgendes passiert:
Ausgabe: alles ok infiziert alles ok infiziert alles ok infiziert...Und zwar soll dies möglichst mit nur einem Aufruf des injection Programms möglich sein.
(Wenn das überhaupt geht)
-
DllMain wird einmalig mit DLL_PROCESS_ATTACH aufgerufen wenn die DLL injiziert wird, was du darin machst ist doch dir überlassen. Allerdings darf man darin nicht alles tun (google dazu am besten mal (Ich glaube, wenn du in der DllMain eine eigene Funktion aufrufst, darfst du in dieser aber alles tun).
Probier halt mal rum, mach ne Schleife mit cout rein oder sonstwas.bool __stdcall DllMain(HMODULE, unsigned long reason, void*) { if(reason == DLL_PROCESS_ATTACH) { ; // Rufe zB. eine Funktion auf ... } else if(reason == DLL_PROCESS_DETACH) { ; } return true; }
-
Danke!