Florian Amette

Florian Amette

October 22, 2026

Enseigner le reverse engineering à des étudiants : plan de cours, outils et labs

reverse engineeringcourscybersécuritéassembleurmalware
Enseigner le reverse engineering à des étudiants : plan de cours, outils et labs

Enseigner le reverse engineering à des étudiants : plan de cours, outils et labs

Pourquoi le reverse engineering a sa place dans votre cursus

Le reverse engineering — ou rétro-ingénierie — est l'une des compétences les plus recherchées en cybersécurité offensive et défensive, et l'une des moins enseignées dans les cursus francophones. Les raisons sont compréhensibles : la courbe d'apprentissage est raide, les prérequis nombreux, et l'encadrement pédagogique demande une expertise rare.

Pourtant, intégrer un module de reverse engineering dans un parcours de M1 ou M2 apporte trois bénéfices concrets.

Rareté de la compétence sur le marché. Les recruteurs en sécurité offensive et les équipes de réponse à incident peinent à trouver des profils capables de lire un binaire sans accès au code source. Un étudiant formé à cette discipline se distingue immédiatement lors des entretiens.

Transversalité pédagogique. Le reverse engineering force la compréhension fine des systèmes : gestion mémoire, conventions d'appel, formats binaires (PE, ELF), appels système. Un étudiant qui sait désassembler un programme comprend mieux les exploitations de vulnérabilités, la détection de malwares, et l'analyse forensique.

Débouché direct vers l'analyse de malwares. Dans un contexte où les menaces évoluent rapidement, la capacité à analyser un fichier suspect sans se fier uniquement aux antivirus est une compétence de réponse à incident fondamentale.


Les prérequis : ne pas brûler les étapes

Un module de reverse engineering demande un socle solide. Le dispenser à des étudiants sans prérequis revient à enseigner la sculpture à quelqu'un qui n'a jamais tenu de ciseau.

Ce que les étudiants doivent maîtriser avant

Assembleur x86/x64 de lecture. Il ne s'agit pas de produire du code assembleur — c'est un autre métier — mais de lire et interpréter un listing de désassemblage. Comprendre qu'un mov rax, [rbp-0x10] est un chargement de valeur depuis la pile est suffisant pour commencer. Un cours d'introduction de 6 à 8 heures couvre ce minimum.

Notions de C ou C++. Les binaires analysés sont très souvent compilés depuis du C ou C++. Connaître les structures de données courantes (tableaux, pointeurs, structs), les appels de fonctions et la gestion mémoire (stack vs heap) permet de reconstruire le comportement du programme.

Linux en ligne de commande. La plupart des outils de reverse engineering s'utilisent sous Linux ou en environnement mixte. strings, file, hexdump, objdump sont des utilitaires qu'un étudiant doit manipuler sans hésitation.

Compréhension des formats binaires. Savoir distinguer un fichier PE (Windows) d'un ELF (Linux) et identifier les sections principales (.text, .data, .rodata) accélère considérablement l'analyse.

Ce que vous pouvez enseigner dans le module

Une fois ces prérequis vérifiés — via un diagnostic de 30 minutes en première séance — vous pouvez aborder sereinement : le désassemblage statique, le débogage dynamique, la combinaison des deux approches, et l'extraction d'indicateurs de compromission.


De l'analyse statique à l'analyse dynamique : la progression naturelle

La dualité statique / dynamique est le fil conducteur de tout module de reverse engineering.

L'analyse statique : comprendre sans exécuter

L'analyse statique consiste à examiner le binaire sans le lancer. Elle est sûre (pas d'exécution de code malveillant), rapide à engager et permet de dresser une première cartographie.

Avec Ghidra, les étudiants apprennent à :

  • décompiler automatiquement du code binaire en pseudo-C lisible ;
  • identifier les fonctions importées et les chaînes de caractères ;
  • repérer les fonctions intéressantes (vérification de mot de passe, déchiffrement, communication réseau) ;
  • renommer les variables et fonctions pour reconstituer la logique du programme.

L'objectif pédagogique est d'enseigner la lecture, pas la traduction mécanique. Un bon analyste statue en quelques minutes sur la dangerosité d'un binaire grâce à une analyse statique ciblée.

L'analyse dynamique : observer le comportement réel

L'analyse dynamique s'exerce sur un binaire en cours d'exécution, dans un environnement isolé. Elle permet de contourner l'obfuscation et de comprendre des comportements que l'analyse statique ne peut pas révéler (déchiffrement en mémoire, communication réseau chiffrée, comportements conditionnels).

Le sandboxing automatique (Cuckoo, Any.run) est un premier niveau utile pour l'exploration, mais il ne remplace pas l'analyse manuelle avec un débogueur (x64dbg sous Windows, GDB/pwndbg sous Linux).

Les étudiants apprennent à poser des points d'arrêt, à inspecter la mémoire, à tracer les appels API système et à capturer le trafic réseau généré par le binaire.

Combiner les deux approches

La pratique professionnelle combine systématiquement statique et dynamique : l'analyse statique oriente les points d'arrêt dynamiques, l'analyse dynamique clarifie les zones obscures du désassemblage. Enseigner cette alternance dès le module initial prépare les étudiants à une pratique réaliste.


Les 5 outils incontournables pour la salle de cours

OutilTypeRôle pédagogiqueGratuit
GhidraDésassembleur / décompilateurAnalyse statique, décompilation pseudo-COui
radare2 / CutterDésassembleur CLI + GUIAlternative à Ghidra, force à comprendre le formatOui
x64dbgDébogueur WindowsAnalyse dynamique sous Windows, interface graphiqueOui
GDB + pwndbgDébogueur LinuxAnalyse dynamique ELF, indispensable sur LinuxOui
strings / hexdumpOutils systèmesExploration rapide, extraction de chaînes et artefactsOui

Note pratique : Fournissez aux étudiants une image de machine virtuelle préconfigurée (Kali ou REMnux) avec l'ensemble de la toolchain. Cela évite 2 heures de dépannage d'installation en première séance et garantit un environnement reproductible entre les séances.


Un module de 20 heures : découpage séance par séance

Voici un plan concret pour un module de 20 heures (5 séances de 4 heures), adapté à un niveau M1 ou M2 avec les prérequis listés ci-dessus.

SéanceThèmeOutilsLivrable étudiant
1Format binaire, outils de reconnaissance, première analyse statiquefile, strings, hexdump, Ghidra (import)Fiche de reconnaissance d'un binaire simple
2Désassemblage et décompilation avec Ghidra : fonctions, boucles, structuresGhidra (analyse complète)Annotation du désassemblage d'un crackme niveau débutant
3Débogage dynamique sous Linux : GDB, pwndbg, points d'arrêt et mémoireGDB, pwndbg, straceCapture de comportement d'un binaire simple (appels système)
4Analyse d'un échantillon malveillant simple : combinaison statique + dynamiqueGhidra + x64dbg (ou GDB) + WiresharkRapport d'analyse IoC sur un dropper basique
5Projet intégrateur : binaire inconnu, rapport complet, soutenance courteEnsemble de la toolchainRapport d'analyse (2-3 pages) + présentation de 10 minutes

Conseil pour la séance 4 : Utilisez des échantillons issus de dépôts publics de malwares éducatifs (MalwareBazaar Academic, VirusTotal Intelligence University Program) ou créez des binaires malveillants fictifs vous-même. Ne jamais utiliser de malwares actifs non désarmés en salle de cours.


Labs pratiques : où trouver les exercices

Le choix des exercices conditionne l'engagement des étudiants. Voici les ressources reconnues et utilisables dans un cadre scolaire.

crackmes.one — plateforme collaborative de crackmes classés par difficulté. Idéal pour les séances 1 à 3. Les niveaux 1 et 2 sont accessibles dès les prérequis de base.

picoCTF (challenges forensic et reverse) — compétition pédagogique de la Carnegie Mellon University, accessible gratuitement en mode pratique hors compétition. Les challenges de reverse engineering sont bien progressifs.

Malware Traffic Analysis (malware-traffic-analysis.net) — archive de captures PCAP associées à des analyses d'incidents réels. Utile pour la séance 4 combinant analyse réseau et forensique.

Binaires construits sur mesure — créer ses propres exercices avec GCC et un niveau d'obfuscation contrôlé reste la meilleure option pour calibrer exactement la difficulté. Un binaire simple en C qui vérifie un mot de passe hardcodé constitue un exercice de séance 1 parfait.

Le cours de forensique numérique est un complément naturel de ce module : les compétences d'analyse de fichiers suspects se rejoignent avec l'investigation forensique sur des images disque ou des dumps mémoire.


Évaluer la démarche, pas l'outil

L'erreur classique est de noter la vitesse ou le volume de découvertes. En reverse engineering, un étudiant lent et méthodique vaut mieux qu'un étudiant rapide qui brûle les étapes.

Rubric d'évaluation proposée

Identification des fonctions clés (20 pts)

  • A-t-il identifié la fonction principale ? Le point d'entrée ?
  • A-t-il renommé les variables et fonctions de façon cohérente ?

Reconstruction du comportement (30 pts)

  • Décrit-il avec précision ce que fait le binaire ?
  • Distingue-t-il comportement normal et comportement malveillant ou suspect ?

Extraction des indicateurs de compromission (25 pts)

  • A-t-il listé les IoC pertinents (domaines, IP, clés de registre, chemins de fichiers) ?
  • Les IoC sont-ils commentés et contextualisés ?

Qualité du rapport (25 pts)

  • Le rapport est-il lisible, structuré et utilisable par un tiers ?
  • L'étudiant justifie-t-il ses hypothèses plutôt que de les asséner ?

Soutenance orale courte

Une présentation de 10 minutes en séance 5 oblige l'étudiant à verbaliser son raisonnement. C'est souvent révélateur : un étudiant qui a copié-collé un résultat de décompilateur sans le comprendre ne peut pas expliquer sa démarche. La question « pourquoi as-tu posé un point d'arrêt ici ? » est un excellent filtre.


Cadrage légal et éthique : ce que l'enseignant doit clarifier

Les limites du périmètre autorisé

Analyser un malware ou un binaire inconnu en dehors d'un environnement isolé expose à des risques techniques mais aussi légaux. Avant la première séance, l'enseignant doit établir des règles claires :

  • Analyse uniquement dans la VM fournie, jamais sur la machine hôte de l'étudiant.
  • Binaires uniquement issus de sources légitimes (dépôts académiques, créations de l'enseignant, licences étudiantes de plateformes de threat intelligence).
  • Interdiction formelle de décompiler ou d'analyser des logiciels commerciaux sans autorisation explicite du détenteur des droits. La directive européenne 2009/24/CE autorise la décompilation à des fins d'interopérabilité dans des conditions strictes, mais pas à des fins d'enseignement général.
  • Aucun partage d'échantillons hors de l'environnement de cours.

Ces règles doivent être communiquées par écrit en début de module, idéalement intégrées dans un document de charte que les étudiants signent. Cette démarche protège l'établissement et professionnalise l'approche aux yeux des étudiants.

L'environnement d'isolation comme compétence à part entière

La capacité à configurer un environnement sécurisé pour l'analyse est elle-même une compétence professionnelle. Les étudiants apprennent à configurer des snapshots de VM, à désactiver les interfaces réseau lors de l'exécution de code suspect, et à documenter leur environnement d'analyse. Ces réflexes sont valorisés dans les rôles d'analyste malware et de réponse à incident.

Le cours forensique développe les mêmes réflexes d'isolation et de préservation des preuves : les deux modules se complètent naturellement dans une progression de M1 vers M2.


Débouchés et certifications associées

Un étudiant formé au reverse engineering est positionné pour des rôles d'analyste malware, de consultant en réponse à incident ou d'expert en analyse de vulnérabilités. Ces profils sont recherchés dans les CERT, les équipes SOC de niveau 3, les prestataires de cybersécurité et les éditeurs de solutions de détection.

La certification GREM (GIAC Reverse Engineering Malware) est la référence industrielle pour valider ces compétences. Elle n'est pas adaptée à tous les niveaux de formation mais constitue un repère utile pour les étudiants qui souhaitent se spécialiser : la structure de son programme d'examen peut d'ailleurs inspirer le découpage pédagogique d'un module avancé.

Pour les étudiants qui s'orientent vers la sécurité offensive, le cours de pentest et l'OSCP complètent naturellement les compétences de reverse engineering, notamment pour la compréhension des exploits et le développement de shellcodes.


Ce qu'il faut retenir

Le reverse engineering est un module exigeant mais à très fort retour sur investissement pédagogique. Il développe une rigueur d'analyse transférable à l'ensemble du cursus cyber.

Les points clés à retenir :

  • Vérifiez les prérequis avant de lancer le module : assembleur en lecture, C/C++ de base, Linux CLI. Un diagnostic en séance 1 évite les retards.
  • Progressez du statique au dynamique : Ghidra d'abord, débogueur ensuite, combinaison des deux en séances 4 et 5.
  • Utilisez des outils gratuits (Ghidra, radare2, x64dbg, GDB) : les étudiants peuvent continuer à pratiquer sur leurs machines personnelles.
  • Notez la démarche, pas la vitesse : un rapport clair avec IoC contextualisés vaut plus qu'une liste de découvertes non commentées.
  • Fournissez une VM préconfigurée pour éviter les pertes de temps en installation.

Un module de 20 heures bien construit, avec des labs progressifs et une évaluation par rapport, donne aux étudiants une compétence rare et immédiatement valorisable.


Vous cherchez un intervenant capable d'animer un module de reverse engineering ou d'analyse de malwares dans votre établissement ? Retrouvez les profils disponibles sur Cyber Teachers et mettez en contact votre programme avec des praticiens actifs.

Tous les articles →

Transformez vos formations cybersécurité avec des experts

Expert qualifié en 24h • Formation sur-mesure • Consultation gratuite

Cyber Teachers