
ELF-Binary-Packer, der Codeabschnitte verschlüsselt und einen Runtime-Entschlüsselungs-Stub für 64-Bit-Linux-Executables injiziert, und dabei Code-Injektions- und Binary-Manipulationstechniken demonstriert.
Ein 42-Schulprojekt, das einen Binary-Packer für 64-Bit-ELF-Executables implementiert. Der Packer verschlüsselt die Code-Abschnitte der ausführbaren Datei und injiziert eine Entschlüsselungsroutine, die zur Laufzeit ausgeführt wird.
Woody-Woodpacker ist ein Programm, das eine 64-Bit-ELF-Binärdatei als Eingabe nimmt und eine neue verschlüsselte Version namens woody erstellt. Beim Ausführen der woody-Binärdatei:
Dieses Projekt erkundet:
Original Binary → [Woody-Woodpacker] → Encrypted Binary (woody)
woody erzeugen./woody → Decrypt code → Print "....WOODY...." → Execute original program
# Repository klonen
git clone https://gitlab.com/Aurh1l/woody-woodpacker.git
cd woody-woodpacker
# Projekt kompilieren
make
# Die ausführbare Datei woody_woodpacker ist nun bereit
./woody_woodpacker
./woody_woodpacker <binary_file>
Dies erzeugt eine neue Datei namens woody im aktuellen Verzeichnis.
# Eine Binärdatei packen
./woody_woodpacker /bin/ls
# Die gepackte Binärdatei ausführen
./woody
# Ausgabe: ....WOODY....
# [dann normale ls-Ausgabe]
# Verhalten der Original- und der gepackten Binärdatei vergleichen
/bin/ls -la
./woody -la
# Beide sollten die gleiche Ausgabe erzeugen (nach "....WOODY....")
Der Packer manipuliert die folgenden ELF-Komponenten:
.text-Abschnitt mit ausführbarem CodeDas Projekt verwendet typischerweise eine einfache Verschlüsselungsmethode wie:
Segment-Padding-Infektion (Silvio-Cesare-Methode):
┌─────────────────────────┐
│ ELF Header │
├─────────────────────────┤
│ Program Headers │
├─────────────────────────┤
│ Decryption Stub │ ← Injected code
├─────────────────────────┤
│ Encrypted .text │ ← Original code (encrypted)
├─────────────────────────┤
│ Other sections │
├─────────────────────────┤
│ Section Headers │
└─────────────────────────┘
Dieses Projekt ist Teil des 42-Schulcurriculums und ausschließlich für Bildungszwecke bestimmt.
Dieses Tool wurde zu Bildungszwecken im Rahmen des 42-Schulcurriculums erstellt. Verwenden Sie es verantwortungsvoll und nur an Binärdateien, die Sie besitzen oder für die Sie eine Änderungsberechtigung haben. Die Autoren übernehmen keine Haftung für Missbrauch dieser Software.