Peut-on faire confiance à des programmes binaires ? L’objectif de ce projet est de permettre l’ajout automatisé de code (mailveillant) dans un programme binaire quelconque. Par exemple, l’exécution de la commande grep “patchée” pourra engendrer une communication avec un serveur distant (à l’insu de l’utilisateur).
Les différentes étapes de ce projet sont :
- La compréhension et la récupération (parsing) d’un binaire au format ELF x86-64
- Écriture d’une preuve de concept fonctionnelle : ajout de code (malveillant) dans la section NOTE du binaire & modification du point d'entrée du programme
- Écriture de code (malveillant) en assembleur à injecter dans le binaire initial
- Bonus #1: ajout dans la section CODE (avec mise à jour des offsets)
- Bonus #2: implémentation d’un packer complet de type UPX (avec 2/ ou 3/)
Compétences mises en oeuvre :
- Langage C
- Langage assembleur (Intel x86-64)
- Pour le bonus #2 : compression et cryptographie
Équipe de 3 ou 4 personnes.
Références :