RIP : Rétro-Ingénierie de Programmes
Offered By: Université de Lille via France Université Numerique
Course Description
Overview
Description
La rétro-ingénierie de programme est l’activité qui consiste à comprendre le fonctionnement interne d’un programme sans avoir accès à son code source. Cela est particulièrement utile pour comprendre le fonctionnement d’un logiciel malveillant ou pour vérifier le niveau de sécurité proposé par un logiciel.
Ce cours donne les bases pour comprendre la structure interne d’un exécutable et utiliser les outils professionnels permettant de réaliser des analyses de programmes. Il, s'adresse aussi bien aux étudiants, qu'aux professionnels et à tout passionné de sécurité informatique.
Pour commencer, nous rappelons le processus de compilation ainsi que le format des fichiers exécutables.
Ensuite, nous analysonsle programme sans l’exécuter. C’est ce qu’on appelle une analyse statique. Nous utilisons des outils plébiscités par les professionnels de la cybersécurité.
Enfin, nous présentons la mise en place d’analyse dynamique des programmes pour enrichir les connaissances acquises lors d'analyse statique.
Syllabus
Plan de cours
- MODULE 1 : Rappels de compilation.
- Rappels de compilation de programmes écrits en C.
- Compréhension du contenu d’un exécutable et lecture de directives assembleur.
- Étude de la structure d’un exécutable Linux (ELF) et de ses différentes sections constitutives (bss, data, text, symtab, ...).
- MODULE 2 : analyse statique
- Présentation des outils professionnels de rétro-ingénierie de programmes
- Navigation dans un code assembleur grâce aux structures d’analyse statique usuelles (CFG, X-ref).
- Comparaison de la sortie de la décompilation d’un exécutable avec le code C l’ayant généré.
- MODULE 3 : Analyse dynamique
- Comparaison des techniques d’analyse statique et dynamique
- Présentation du fonctionnement d’une analyse en boîte opaque
- Étude du fonctionnement d’un debugger (signals, sigaction, ptrace) et son utilisation pour la rétro-ingénierie.
Tags
Related Courses
Malware Analysis and Assembly Language IntroductionIBM via edX Advanced Malware Analysis: Redux
Cybrary Intro to Malware Analysis and Reverse Engineering
Cybrary CNIT 126: Practical Malware Analysis
CNIT - City College of San Francisco via Independent Reverse Engineering 101
Malware Unicorn via Independent