
Packer per binari ELF che crittografa le sezioni di codice e inietta uno stub di decrittazione runtime per eseguibili Linux a 64 bit, dimostrando tecniche di code injection e manipolazione binaria.
Un progetto della scuola 42 che implementa un packer per eseguibili ELF a 64 bit. Il packer cripta le sezioni di codice dell'eseguibile e inietta una routine di decriptazione che viene eseguita a runtime.
Woody-Woodpacker è un programma che prende un binario ELF a 64 bit come input e crea una nuova versione criptata chiamata woody. Quando viene eseguito, il binario woody:
Questo progetto esplora:
Original Binary → [Woody-Woodpacker] → Encrypted Binary (woody)
woody./woody → Decrypt code → Print "....WOODY...." → Execute original program
# Clona il repository
git clone https://gitlab.com/Aurh1l/woody-woodpacker.git
cd woody-woodpacker
# Compila il progetto
make
# L'eseguibile woody_woodpacker è ora pronto
./woody_woodpacker
./woody_woodpacker <binary_file>
Crea un nuovo file chiamato woody nella directory corrente.
# Impacchetta un binario
./woody_woodpacker /bin/ls
# Esegui il binario impacchettato
./woody
# Output: ....WOODY....
# [poi il normale output di ls]
# Confronta il comportamento del binario originale e di quello impacchettato
/bin/ls -la
./woody -la
# Entrambi dovrebbero produrre lo stesso output (dopo "....WOODY....")
Il packer manipola i seguenti componenti ELF:
.text contenente il codice eseguibileIl progetto utilizza tipicamente un metodo di crittografia semplice come:
Infezione tramite Padding di Segmento (metodo Silvio Cesare):
┌─────────────────────────┐
│ ELF Header │
├─────────────────────────┤
│ Program Headers │
├─────────────────────────┤
│ Decryption Stub │ ← Codice iniettato
├─────────────────────────┤
│ Encrypted .text │ ← Codice originale (criptato)
├─────────────────────────┤
│ Other sections │
├─────────────────────────┤
│ Section Headers │
└─────────────────────────┘
Questo progetto fa parte del curriculum della scuola 42 ed è destinato esclusivamente a scopi educativi.
Questo strumento è creato per scopi educativi come parte del curriculum della scuola 42. Usalo in modo responsabile e solo su binari di tua proprietà o per cui hai il permesso di modificarli. Gli autori non sono responsabili per qualsiasi uso improprio di questo software.