
Packer binaire ELF qui chiffre les sections de code et injecte un stub de déchiffrement runtime pour les exécutables Linux 64 bits, démontrant des techniques d'injection de code et de manipulation binaire.
Un projet de l'école 42 qui implémente un packer de binaires pour les exécutables ELF 64 bits. Le packer chiffre les sections de code de l'exécutable et injecte une routine de déchiffrement qui s'exécute au moment du lancement.
Woody-Woodpacker est un programme qui prend un binaire ELF 64 bits en entrée et crée une nouvelle version chiffrée appelée woody. Lors de son exécution, le binaire woody :
Ce projet explore :
Binaire original → [Woody-Woodpacker] → Binaire chiffré (woody)
woody./woody → Déchiffrer le code → Afficher "....WOODY...." → Exécuter le programme original
# Clonez le dépôt
git clone https://gitlab.com/Aurh1l/woody-woodpacker.git
cd woody-woodpacker
# Compilez le projet
make
# L'exécutable woody_woodpacker est maintenant prêt
./woody_woodpacker
./woody_woodpacker <fichier_binaire>
Ceci crée un nouveau fichier appelé woody dans le répertoire courant.
# Empaqueter un binaire
./woody_woodpacker /bin/ls
# Exécuter le binaire empaqueté
./woody
# Sortie : ....WOODY....
# [puis sortie normale de ls]
# Comparer le comportement du binaire original et du binaire empaqueté
/bin/ls -la
./woody -la
# Les deux devraient produire la même sortie (après "....WOODY....")
Le packer manipule les composants ELF suivants :
.text contenant le code exécutableLe projet utilise généralement une méthode de chiffrement simple telle que :
Segment Padding Infection (méthode de Silvio Cesare) :
┌─────────────────────────┐
│ En-tête ELF │
├─────────────────────────┤
│ En-têtes de programme │
├─────────────────────────┤
│ Stub de déchiffrement │ ← Code injecté
├─────────────────────────┤
│ Code .text chiffré │ ← Code original (chiffré)
├─────────────────────────┤
│ Autres sections │
├─────────────────────────┤
│ En-têtes de section │
└─────────────────────────┘
Ce projet fait partie du programme de l'école 42 et est destiné à des fins éducatives uniquement.
Cet outil a été créé à des fins éducatives dans le cadre du programme de l'école 42. Utilisez-le de manière responsable et uniquement sur des binaires que vous possédez ou pour lesquels vous avez l'autorisation de modifier. Les auteurs ne sont pas responsables de toute mauvaise utilisation de ce logiciel.