
🗜️ Ein Packer für Windows x86 ausführbare Dateien, geschrieben in C und Intel x86 Assembly. Die neue Datei nach dem Packen kann Reverse Engineering erschweren.

PE-Packer ist ein einfacher Packer für Windows PE-Dateien. Die neue PE-Datei nach dem Packen kann den Prozess des Reverse Engineerings behindern.
Beim Packen einer PE-Datei werden folgende Schritte durchgeführt:
Beim Ausführen einer gepackten PE-Datei entschlüsselt der Shell-Einsprung das ursprüngliche Programm und lädt es wie folgt:
Vor dem Packen kann man die ausführbare Datei mit Disassemblierungswerkzeugen wie IDA Pro zerlegen, um den Code zu analysieren.
Disassemblierung des Codes.

Suche nach konstanten Zeichenketten.

Analyse der Importtabelle.

Nach dem Packen wird die Reverse-Analyse erschwert.
Disassemblierung des Codes.

Suche nach konstanten Zeichenketten.

Analyse der Importtabelle.

Dieses Projekt ist nur eine Demo für Anfänger, um das Windows PE Format und die Assembly-Sprache zu erlernen. Es hat noch einige Kompatibilitätsprobleme und Fehler, sodass es nicht in der Praxis eingesetzt werden kann.
Das Projekt muss auf/für Windows 32-Bit konfiguriert sein und kann aktuell nur 32-Bit .exe-Programme verarbeiten.
mkdir -p build
cd build
cmake .. -D CMAKE_C_COMPILER=gcc -G "MinGW Makefiles"
cmake --build .
Oder führen Sie die Datei build.ps1 direkt aus:
PS> .\build.ps1
Um ein Programm zu packen, müssen Sie dessen Eingabename und Ausgabenamen angeben.
PE-Packer <input-file> <output-file>
Beispiel:
PE-Packer hello.exe hello-pack.exe
Sie können Doxygen verwenden, um die Dokumentation zu generieren.
Verteilt unter der MIT-Lizenz. Siehe LICENSE für weitere Informationen.