{{tag>cours informatique dev sécurité}} ====== RIP : Rétro-Ingénierie de Programmes ====== Notes prises lors de la participation au MOOC [[https://www.fun-mooc.fr/fr/cours/rip-retro-ingenierie-de-programmes/|RIP : Rétro-Ingénierie de Programmes]] proposé par L'Université de Lille sur la plateforme [[https://www.fun-mooc.fr/fr/|FUN Mooc]]. ===== Module 1 : Rappel de compilation ===== * [[110-generer-un-executable|Génération d'un exécutable]] * [[120-format-elf|Présentation générale du format ELF]] * [[130-entete-et-section-elf|Format ELF : en-tête programme et section]] * [[140-sections-elf|Format ELF : les sections]] * [[150-section-symboles-elf|Format ELF : section des symboles]] * [[160-liens-avec-bibliotheques|Liens avec les bibliothèques]] ===== Module 2 : Analyses statique ===== * Retour sur le module précédent et présentation générale de l'analyse statique de code * Première manipulation : utilisation de IDA free pour visualiser le graphe de flot de contrôle * Déplacement dans le code * Deuxième manipulation : retrouver la fonction main du programme * Décompilation d'un programme * Troisième manipulation : décompilation avec Ghidra ===== Module 3 : Analyse dynamique ===== * Introduction à l'analyse dynamique d'un programme * Première manipulation : utilisation de ltrace et strace * Analyse en boîte opaque et fonctionnement des points d'arrêt * Deuxième manipulation : première analyse avec gdb * Fonctionnement des signaux * Troisième manipulation : gdb et les signaux * Fonctionnement d'un debugger, utilisation de ptrace, des points d'arrêt matériels * Quatrième manipulation : utilisation de points d'arrêt * Distribution aléatoire de l'espace d'adressage * Cinquième manipulation : synchronisation gdb et IDA * Extensions pour gdb * Sixième manipulation : utilisation de gdb-peda * Débuggage dans l'outil de rétro-ingénierie * Septième manipulation : débuggage depuis IDA [[110-generer-un-executable|Commencer ▷]]