Rétro‑ingénierie de logiciels malveillants est un cours scientifiquement fondé consacré à l’analyse de logiciels malveillants Windows au niveau binaire. Il combine des bases théoriques rigoureuses (compilation, architecture des ordinateurs, mécanismes des systèmes d’exploitation et architectures de jeux d’instructions) avec une pratique intensive de la rétro‑ingénierie. Les étudiants apprennent à analyser des programmes compilés, à reconstruire des sémantiques de haut niveau à partir de code bas niveau et à comprendre les techniques utilisées par les logiciels malveillants modernes pour échapper à l’analyse. Le cours met l’accent sur le raisonnement systématique, l’analyse méthodologique et une approche orientée recherche pour comprendre les logiciels malveillants contemporains.
Les supports de cours nécessaires seront fournis par l’enseignant.
Prérequis
Langages de programmation : Python et C
Ce cours propose un parcours pratique et structuré dans la rétro‑ingénierie de logiciels malveillants. En partant des fondamentaux du logiciel, de la compilation et de l’architecture des ordinateurs, les étudiants explorent progressivement les mécanismes internes des systèmes d’exploitation, les formats exécutables et le jeu d’instructions x86. Le cours se concentre ensuite sur l’analyse statique et dynamique à l’aide d’outils de niveau industriel tels que Ghidra et x64dbg, pour aboutir à l’étude des techniques d’obfuscation, d’anti‑analyse et des comportements réels des logiciels malveillants. L’accent est mis sur la compréhension du fonctionnement des malwares, de leurs mécanismes de dissimulation et des méthodes permettant aux analystes d’en révéler systématiquement les fonctionnalités.
Méthodes pédagogiques
Cours magistraux et séances de travaux pratiquesRèglement du cours
Règlement du cours
La présence aux séances de travaux pratiques est obligatoire.
Évaluation
Le cours comprend deux travaux pratiques individuels notés. Chaque travail pratique compte pour 15 % de la note finale, soit un total de 30 %.
L’examen final consiste en un examen pratique individuel avec des questions supplémentaires et représente les 70 % restants de la note finale.
Objectifs pédagogiques
À l’issue du cours, les étudiants seront capables de :
Aborder des binaires avec une méthodologie structurée de rétro‑ingénierie
Analyser des exécutables Windows et comprendre le format Portable Executable (PE)
Raisonner sur l’assembleur x86/x64, les conventions d’appel et les appels système
Réaliser des analyses statiques et dynamiques en approche boîte grise
Identifier et contourner les techniques courantes d’obfuscation, de packing et d’anti‑analyse
Comprendre les comportements des logiciels malveillants modernes et leurs stratégies d’évasion