Meine erste DLL Injection

Hab zum ersten Mal eine eigene DLL in einen laufenden Prozess injected. Der Injector in C++ nutzt CreateRemoteThread um die DLL ins Target zu laden. Einmal drin hookt die DLL ein paar Funktionen und schreibt Debug-Output.

Der Injector öffnet den Zielprozess, allokiert Speicher für den DLL-Pfad, schreibt ihn in den Remote-Prozess und erstellt einen Thread der LoadLibrary aufruft. Die DLL läuft dann im Address Space des Targets und kann Funktionen hooken oder Memory modifizieren. Ziemlich straightforward wenn man die Windows API verstanden hat.

[[img:1]]

Der Screenshot zeigt Visual Studio mit dem Injector-Code links und der Debug-Konsole unten. Die Konsole zeigt "dll injected" Meldungen nachdem CreateRemoteThread erfolgreich war. Rechts im Editor sieht man die DLL mit den Hook-Funktionen.