DLL-Injektion in Python

Auslösen

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

Schon da

Hier https://github.com/psychomario/pyinject

Versuchen Sie es mit

Umgebung

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()

Lauf

>C:¥Windows¥notepad.exe
>tasklist
...
notepad.exe  1988 Console  1  9,384K
...
>python use.py 1988

cmd.png

result.png

wichtiger Punkt

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

DLL-Injektion in Python
DI (Dependency Injection) in Python
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
SendKeys in Python
Metaanalyse in Python
Unittest in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
[Python] [Windows] Serielle Kommunikation in Python über DLL
Sortierte Liste in Python
Täglicher AtCoder # 36 mit Python
Clustertext in Python
AtCoder # 2 jeden Tag mit Python
Täglicher AtCoder # 32 in Python
Täglicher AtCoder # 6 in Python
Täglicher AtCoder # 18 in Python
Bearbeiten Sie Schriftarten in Python
Singleton-Muster in Python
Dateioperationen in Python
Lesen Sie DXF mit Python
Täglicher AtCoder # 53 in Python
Tastenanschlag in Python
Verwenden Sie config.ini mit Python
Täglicher AtCoder # 33 in Python