
Empaquetador de binarios ELF que cifra secciones de código e inyecta un stub de descifrado en tiempo de ejecución para ejecutables Linux de 64 bits, demostrando técnicas de inyección de código y manipulación de binarios.
Un proyecto de la escuela 42 que implementa un empaquetador de binarios para ejecutables ELF de 64 bits. El empaquetador cifra las secciones de código del ejecutable e inyecta una rutina de descifrado que se ejecuta en tiempo de ejecución.
Woody-Woodpacker es un programa que toma un binario ELF de 64 bits como entrada y crea una nueva versión cifrada llamada woody. Cuando se ejecuta, el binario woody:
Este proyecto explora:
Original Binary → [Woody-Woodpacker] → Encrypted Binary (woody)
woody./woody → Decrypt code → Print "....WOODY...." → Execute original program
# Clone the repository
git clone https://gitlab.com/Aurh1l/woody-woodpacker.git
cd woody-woodpacker
# Compile the project
make
# The woody_woodpacker executable is now ready
./woody_woodpacker
./woody_woodpacker <binary_file>
Esto crea un nuevo archivo llamado woody en el directorio actual.
# Pack a binary
./woody_woodpacker /bin/ls
# Execute the packed binary
./woody
# Output: ....WOODY....
# [then normal ls output]
# Compare original and packed binary behavior
/bin/ls -la
./woody -la
# Both should produce the same output (after "....WOODY....")
El empaquetador manipula los siguientes componentes ELF:
.text que contiene código ejecutableEl proyecto típicamente usa un método de cifrado simple como:
Infección por relleno de segmento (método de Silvio Cesare):
┌─────────────────────────┐
│ ELF Header │
├─────────────────────────┤
│ Program Headers │
├─────────────────────────┤
│ Decryption Stub │ ← Injected code
├─────────────────────────┤
│ Encrypted .text │ ← Original code (encrypted)
├─────────────────────────┤
│ Other sections │
├─────────────────────────┤
│ Section Headers │
└─────────────────────────┘
Este proyecto es parte del currículo de la escuela 42 y está destinado únicamente a fines educativos.
Esta herramienta ha sido creada con fines educativos como parte del currículo de la escuela 42. Úsela de manera responsable y solo en binarios que posea o tenga permiso para modificar. Los autores no se responsabilizan por el mal uso de este software.