0% ont trouvé ce document utile (0 vote)
4 vues3 pages

Rétro-ingénierie avec GDB : TP3

Ce TP vise à approfondir l'utilisation de GDB et à introduire la rétro-ingénierie de code à travers l'analyse d'un programme binaire partiellement fourni. Les participants doivent résoudre des énigmes en trouvant des chaînes de caractères acceptées par des fonctions de validation, tout en respectant le cadre légal. À la fin, les étudiants auront acquis des compétences pratiques en analyse de programmes binaires et en décryptage de leur logique interne.

Transféré par

pluniels
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats ODT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues3 pages

Rétro-ingénierie avec GDB : TP3

Ce TP vise à approfondir l'utilisation de GDB et à introduire la rétro-ingénierie de code à travers l'analyse d'un programme binaire partiellement fourni. Les participants doivent résoudre des énigmes en trouvant des chaînes de caractères acceptées par des fonctions de validation, tout en respectant le cadre légal. À la fin, les étudiants auront acquis des compétences pratiques en analyse de programmes binaires et en décryptage de leur logique interne.

Transféré par

pluniels
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats ODT, PDF, TXT ou lisez en ligne sur Scribd

TP3 : Rétro-ingénierie de code

Objectifs
• Approfondir l'utilisation de GDB.
• Découvrir les bases de la rétro-ingénierie de code.
• Résoudre des énigmes à partir d'un programme binaire partiellement fourni.

1. Introduction à la rétro-ingénierie
Définition
D'après Wikipedia :
La rétro-ingénierie est une méthode permettant d'analyser et de comprendre un système
sans en connaître précisément le fonctionnement interne.

En informatique, cela consiste à étudier un programme binaire pour en déduire son comportement,
notamment lorsque son code source est partiellement ou totalement absent.

Contexte légal
Cette activité est encadrée par la loi en France et en Europe. Assurez-vous d'agir dans un cadre légal
et pédagogique.

2. Étude du programme mysterioso


Dans le dossier src, vous trouverez :

• L'exécutable mysterioso
• Une partie de son code source dans [Link]

Étapes à franchir
Le programme vous demande de passer 4 étapes en fournissant des chaînes de caractères validées
par des fonctions dont le code source est absent. Votre objectif est de :
1. Trouver une chaîne acceptée.
2. Comprendre le fonctionnement de la vérification.

Ressources utiles
• Gestion des chaînes de caractères en Go.
• Fonction [Link] de la bibliothèque standard.
3. Exploration avec GDB
Chargement et analyse
Lancez GDB sur le binaire :
gdb -tui ./mysterioso

Commencez par lister les symboles disponibles :


info functions

Points d'arrêt
Ajoutez un point d'arrêt à la fonction de validation d'une étape :
b validateStep1
run

Utilisez les commandes suivantes pour avancer pas à pas et analyser l'exécution :
• stepi (si), nexti (ni), step (s), next (n)
• info registers : Afficher les registres
• x/s <adresse> : Lire une chaîne de caractères en mémoire

Exercice 1
• Trouvez une chaîne qui valide l'étape 1.
• Analysez la fonction de validation et expliquez son mécanisme.

4. Analyse des données en mémoire


Accéder aux variables
Utilisez print et x/ pour examiner les données :
print buffer
x/20bx &buffer # Affiche 20 octets à partir de l'adresse de buffer

Exercice 2
• Trouvez où est stockée la chaîne fournie en entrée.
• Analysez comment elle est traitée et comparée dans le programme.

5. Décryptage des étapes suivantes


Avancer dans l'analyse
Une fois l’étape 1 franchie, répétez le processus pour les suivantes :
1. Identifiez la fonction de validation.
2. Déterminez la logique de vérification.
3. Trouvez une chaîne acceptée.

Exercice 3
• Documentez la logique de chaque étape.
• Proposez une caractérisation des entrées valides.

6. Conclusion
Ce TP vous a permis d'explorer un programme binaire inconnu à l'aide de GDB et de techniques de
rétro-ingénierie. L'objectif était de vous familiariser avec les outils et méthodes utilisés dans ce
domaine, tout en développant votre capacité à analyser un code sans en avoir la source complète.

Vous aimerez peut-être aussi