Es gab einen Artikel über DLL Injection in der Sprache c, also habe ich versucht, etwas zu erstellen, das von Python basierend darauf ausgeführt werden kann.
http://inaz2.hatenablog.com/entry/2015/08/08/223643
Hier https://github.com/psychomario/pyinject
windows7 pro service pack 1 (64bit) python2.7 notepad(64bit) gcc 4.8.3
dir dllInjection
dllinject.py//DL von git
use.py//Unten erstellt
spy.dll//Später erklärt
spy.dll Von diesem Artikel abgelenkt http://inaz2.hatenablog.com/entry/2015/08/08/223643
spy.c
#include <windows.h>
#pragma comment(lib, "user32")
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
char filename[MAX_PATH];
switch (fdwReason) {
case DLL_PROCESS_ATTACH:
GetModuleFileName(NULL, filename, sizeof(filename));
MessageBox(NULL, filename, "Hello from", MB_SYSTEMMODAL);
break;
}
return TRUE;
}
Machen Sie diese DLL.
gcc -c spy.c //spy.o
gcc -shared -o spy.dll spy.o //spy.dll
use.py Schreiben Sie als Nächstes den Code für die Verwendung von dllinject.py, das von git heruntergeladen wurde. (Eine Ebene, die Konsole sein kann ...)
use.py
import sys
import dllinject
pid = int(sys.argv[1])
proc=dllinject.Process(pid=pid)
proc.inject("C:\\Users\\'hoge'\\Desktop\\dllInjection\\spy.dll")
proc.terminate()
>C:¥Windows¥notepad.exe
>tasklist
...
notepad.exe 1988 Console 1 9,384K
...
>python use.py 1988
Um die DLL-Injektion einzurichten, kann sie nur eingerichtet werden, wenn der Startvorgang und der DLL-Typ übereinstimmen. In meiner Umgebung funktionierte wow64 + 32bit dll auch nicht. http://furuya02.hatenablog.com/entry/20120114/1326484897
Prozess | DLL-Typ | Ergebnis |
---|---|---|
32bit | 32bit | ◯ |
32bit | 64bit | ERROR_BAD_EXE_FORMAT |
64bit | 32bit | ERROR_BAD_EXE_FORMAT |
64bit | 64bit | ◯ |
Recommended Posts