Ingénierie inverse : lire les logiciels dont vous n'avez jamais eu le code source
L'ingénierie inverse est la discipline qui consiste à analyser les logiciels compilés pour comprendre leur fonctionnement — sans accès au code source d'origine. Les chercheurs en sécurité l'utilisent pour découvrir des vulnérabilités, les analystes de malwares l'utilisent pour disséquer du code malveillant, et les ingénieurs firmware l'utilisent pour comprendre les systèmes embarqués. Ce parcours couvre la pile complète : des formats binaires bruts et de l'Assembly à travers l'analyse statique et dynamique, jusqu'au développement d'exploits et aux techniques anti-RE avancées.
Ce que vous apprendrez
Vous commencerez par les fondamentaux des binaires — formats exécutables, disposition en mémoire, et comment le code haut niveau se traduit en instructions machine. De là, vous lirez et analyserez l'Assembly x86/x64 tel qu'il apparaît dans les vraies sorties de désassemblage. Vous utiliserez les outils d'analyse statique pour examiner les binaires sans les exécuter, puis basculerez à l'analyse dynamique et au débogage pour observer l'exécution en direct. Les cours ultérieurs couvrent l'analyse de malwares, les optimisations du compilateur et leur impact sur la clarté du code, les scripts pour l'analyse statique automatisée, et les astuces anti-ingénierie inverse utilisées dans la pratique. Le parcours se termine par l'ingénierie inverse du firmware et des systèmes embarqués, la recherche de vulnérabilités, le développement d'exploits, et un aperçu de la direction que prend le domaine.
Le parcours d'apprentissage
Douze cours s'étendent du A1 au C2. Le cours d'ouverture introduit les concepts fondamentaux au niveau A1 avec un premier aperçu gratuit ; les deux cours suivants (A2–B2) développent la maîtrise des binaires et les compétences en lecture d'Assembly. Quatre cours B2/C1 couvrent ensuite les principaux flux d'analyse : outils statiques, débogage dynamique, fondamentaux des malwares, et scripts. Les quatre derniers cours fonctionnent au niveau C1–C2 et abordent le matériel le plus difficile : optimisations du compilateur et leur effet sur le désassemblage, firmware et cibles embarquées, recherche de vulnérabilités et développement d'exploits, et sujets avancés incluant les tendances actuelles du domaine.
Comment ça marche
Chaque cours est divisé en leçons courtes et ciblées avec des exercices pratiques dans l'éditeur intégré — vous lisez l'Assembly, annotez les binaires, et travaillez à travers des tâches d'analyse réelles avec des retours en temps réel. Un tuteur IA est disponible à chaque étape quand vous êtes bloqué sur une séquence d'instructions, un flag d'outil, ou une structure binaire non familière.