Diskussion:DLL-Injection
FreeLibrary
Die DLL-Injection wurde gut erklärt, interessant wäre meiner Meinung nach aber noch wie man die DLL anschließend wieder raus bekommt (Uninject über FreeLibrary). Es ist zum Beispiel beim Debuggen teilweise umständlich, wenn man die Zielanwendung neustarten muss.
Größe Ermitteln schlägt fehl
Bei mir (Visual Studio 2008, Windows 7 64bit, Debug) schlägt das Ermitteln der Größe der Funktion threadstart(LPVOID addr) fehl. Der Wert ist viel zu groß unf der Fehler tritt erst bei WriteProcessMemory auf. Ein Workaround wäre eine alternativ Größenbestimmung:
funcsize = 0; BYTE* FunctionPtr = (BYTE*)&threadstart;
while(*FunctionPtr != 0xC3) // scannt bis return
{
funcsize++;
FunctionPtr ++;
}
src: http://www.hackerboard.de/code-kitchen/35625-groesse-einer-funktion-ermitteln-c.html
Build Environment
Visual Studio: Das Programm muss als Release gebaut werden, sonst landen debuggung informationen in unserem Ziel (dort wo wir injecten und alles crased)
|