
Cours de reverse engineering logiciel
Maîtrisez le flux de travail complet du rétro-ingénierie — de la lecture de l'assembleur brut à la défaite de l'obscurcissement et la découverte de vulnérabilités réelles. Ce cours vous offre la profondeur technique nécessaire pour analyser tout binaire compilé sur Windows, Linux ou macOS. Que vous cibliez des logiciels malveillants, du microcode ou des logiciels à code source fermé, vous repartirez avec des compétences que l'industrie exige en fait.
Ce que vous allez apprendre:
Vous bâtirez une base solide en assembleur x86 et x86-64, en formats de fichiers binaires et en architecture de CPU avant de passer à l'analyse statique et dynamique pratique. Vous utiliserez des désassembleurs, des débogueurs et des décompilateurs de l'industrie pour reverser des binaires réels et retrouver la logique de programme de haut niveau. Le cours couvre les techniques d'obscurcissement, l'analyse de *packers* et les contournements anti-débogage pour que les cibles durcies ne vous arrêtent pas. Vous appliquerez aussi le rétro-ingénierie directement à la recherche de vulnérabilités, en identifiant les bogues de corruption mémoire, les failles d'authentification et la cryptographie faible. Les modules avancés introduisent l'exécution symbolique, le *diffing* binaire, l'instrumentation dynamique et les flux de travail d'automatisation pour l'analyse à grande échelle.
Comment vous étudiez de façon pratique Cours de reverse engineering logiciel
Comment vous pratiquez Cours de reverse engineering logiciel
Pour vous, entreprise, qui souhaitez former votre équipe
Avec Dedika pour entreprises, le cours inclut des exercices et des exemples adaptés à votre propre entreprise et à ses besoins spécifiques.
Contenu du cours
8 Chapitres • 40 LeçonsDurée entre 4 et 360 heures (vous décidez)
Chapitre 1MasquerCacher les détailsVoir les détailsFondements de la rétro-ingénierie
Fondements de la rétro-ingénierie
Leçon 1 • Configuration du laboratoire de rétro-ingénierie
Guide les étudiants dans la construction d'un environnement d'analyse isolé avec des machines virtuelles et des outils essentiels. Assure un espace de travail sûr et reproductible pour tous les exercices.
Leçon 2 • Limites juridiques et éthiques
Couvre les exigences d'autorisation, les normes de divulgation responsable et la conduite éthique. Forme les étudiants aux normes professionnelles avant le début des travaux pratiques.
Leçon 3 • Qu'est-ce que la rétro-ingénierie
Définit la rétro-ingénierie, ses objectifs et son rôle dans la recherche en sécurité et l'analyse logicielle. Établit le vocabulaire utilisé tout au long du cours.
Leçon 4 • Notions essentielles d'architecture informatique
Passe en revue les registres du CPU, la disposition de la mémoire et le cycle de récupération-décodage-exécution. Fournit le modèle mental matériel nécessaire pour interpréter le code désassemblé.
Leçon 5 • Aperçu des formats de fichiers binaires
Présente les structures PE, ELF et Mach-O et la façon dont les chargeurs les mappent en mémoire. Relie les connaissances sur les formats de fichiers aux tâches ultérieures de désassemblage et de correction.
Chapitre 2MasquerCacher les détailsVoir les détailsLangage assembleur pour ingénieurs en rétro-ingénierie
Langage assembleur pour ingénieurs en rétro-ingénierie
Leçon 1 • Différences et extensions x86-64
Met en évidence l'expansion des registres, l'adressage relatif à RIP et les notions de base SIMD en mode 64 bits. Prépare les étudiants aux binaires 64 bits modernes rencontrés dans la pratique.
Leçon 2 • Fondamentaux du jeu d'instructions x86
Couvre les instructions de mouvement de données, arithmétiques et logiques avec des exemples annotés. Forme le vocabulaire de lecture nécessaire pour tout le travail de désassemblage à venir.
Leçon 3 • La pile et les conventions d'appel
Détaille comment les fonctions passent les arguments, préservent les registres et renvoient les valeurs selon les principales conventions d'appel. Essentiel pour comprendre avec précision la sortie décompilée.
Leçon 4 • Instructions de flux de contrôle
Explique les sauts conditionnels et inconditionnels, les boucles et les mécanismes CALL/RET. Les étudiants apprennent à reconstruire la logique du programme à partir de séquences d'instructions brutes.
Leçon 5 • Reconnaissance des constructions de haut niveau
Fait correspondre les motifs de l'assembleur aux constructions de niveau C telles que if-else, les boucles et les structures. Accélère l'analyse en permettant aux étudiants de lire l'intention plutôt que des opcodes bruts.
Chapitre 3MasquerCacher les détailsVoir les détailsTechniques d'analyse statique
Techniques d'analyse statique
Leçon 1 • Annotation et renommage des symboles
Couvre le renommage systématique des fonctions, des variables et des structures de données pour construire un modèle lisible. Améliore directement la vitesse d'analyse et réduit la charge cognitive.
Leçon 2 • Navigation dans les graphes de code
Enseigne l'utilisation des graphes de flux de contrôle, des graphes d'appel et des références croisées pour orienter l'analyse. Permet une navigation efficace dans des bases de code volumineuses et inconnues.
Leçon 3 • Analyse des chaînes de caractères et des importations
Extrait les chaînes de caractères significatives, les API importées et les signatures de bibliothèques pour déduire le comportement du programme. Fournit un tri rapide avant l'analyse approfondie du code.
Leçon 4 • Script de tâches d'analyse statique
Introduit l'automatisation des tâches statiques répétitives à l'aide d'API de script de désassembleur. Les étudiants écrivent des scripts qui renomment, annotent et extraient des données à grande échelle.
Leçon 5 • Désassembleurs et leur fonctionnement interne
Compare les algorithmes de désassemblage par balayage linéaire et par descente récursive et leurs compromis. Les étudiants choisissent le mode d'outil approprié pour chaque scénario d'analyse.
Chapitre 4MasquerCacher les détailsVoir les détailsAnalyse dynamique et débogage
Analyse dynamique et débogage
Leçon 1 • Détection et contournement des anti-débogages
Identifie les astuces anti-débogage courantes et démontre des méthodes de contournement fiables. Prépare les étudiants aux cibles durcies rencontrées dans l'analyse du monde réel.
Leçon 2 • Traçage et journalisation de l'exécution
Utilise le traçage au niveau des instructions et la journalisation des API pour capturer l'historique complet de l'exécution. Complète l'analyse par points d'arrêt pour les cibles non déterministes ou multithreads.
Leçon 3 • Architecture et concepts du débogueur
Explique comment les débogueurs s'attachent aux processus, gèrent les exceptions et contrôlent l'exécution. Fournit le modèle conceptuel nécessaire pour utiliser efficacement n'importe quel débogueur.
Leçon 4 • Inspection de l'état du programme
Enseigne la lecture des registres, de la mémoire et de la pile d'appels au moment de l'exécution pour vérifier les résultats de l'analyse statique. Les étudiants corrèlent l'état en direct avec le désassemblage pour confirmer le comportement du code.
Leçon 5 • Stratégies de points d'arrêt
Couvre les points d'arrêt conditionnels, matériels et d'accès mémoire pour une analyse ciblée. Un placement efficace des points d'arrêt réduit le temps nécessaire pour obtenir des informations sur des cibles complexes.
Chapitre 5MasquerCacher les détailsVoir les détailsDécompilation et récupération de code
Décompilation et récupération de code
Leçon 1 • Gestion des optimisations du compilateur
Identifie les artefacts d'incorporation de fonctions, de déroulement de boucles et de réduction de puissance dans la sortie décompilée. Les étudiants apprennent à annuler mentalement les optimisations pour retrouver la logique d'origine.
Leçon 2 • Récupération des structures de données
Reconstruit les structures, les unions et les dispositions de classe à partir des motifs d'accès dans le code décompilé. Une récupération précise des structures est essentielle pour comprendre les cibles orientées objet.
Leçon 3 • Décompilation de code orienté objet
Aborde la décoration des noms C++, la répartition virtuelle et RTTI pour récupérer les hiérarchies de classes. Étend les compétences de décompilation à la majorité des logiciels compilés modernes.
Leçon 4 • Comment fonctionnent les décompilateurs
Explique le transfert vers une représentation intermédiaire, la récupération de type et la génération de pseudo-code. Établit des attentes réalistes quant à la qualité et aux limites de la sortie du décompilateur.
Leçon 5 • Travail avec la sortie du décompilateur
Enseigne la lecture, la correction et l'annotation du pseudo-code du décompilateur pour produire des modèles précis. Les étudiants réconcilient les erreurs du décompilateur avec la vérité terrain du désassemblage.
Chapitre 6MasquerCacher les détailsVoir les détailsObfuscation et techniques anti-analyse
Obfuscation et techniques anti-analyse
Leçon 1 • Obfuscation basée sur la virtualisation
Présente les protecteurs VM personnalisés, les boucles de répartition de bytecode et l'identification des gestionnaires. Les étudiants développent une méthodologie pour inverser partiellement le code protégé par VM.
Leçon 2 • Obfuscation des chaînes de caractères et des données
Couvre le codage XOR, la construction de chaînes de caractères basée sur la pile et les routines de décryptage personnalisées. Les étudiants extraient les chaînes de caractères en texte clair d'échantillons obfusqués de manière automatique et manuelle.
Leçon 3 • Approches de désobfuscation automatisée
Applique l'exécution symbolique et l'analyse de contamination pour automatiser la désobfuscation à grande échelle. Fait le pont entre les techniques manuelles et les flux de travail assistés par des outils pour les cibles complexes.
Leçon 4 • Taxonomie de l'obfuscation de code
Catalogue l'insertion de code indésirable, les prédicats opaques, l'aplatissement du flux de contrôle et la substitution. Donne aux étudiants un cadre de classification pour identifier l'obfuscation à vue.
Leçon 5 • Compacteurs et protecteurs
Explique les procédures de décompactage au moment de l'exécution, la reconstruction des importations et les flux de travail de vidage mémoire. Les étudiants récupèrent l'exécutable d'origine à partir d'échantillons compactés ou protégés.
Chapitre 7MasquerCacher les détailsVoir les détailsDécouverte de vulnérabilités par la rétro-ingénierie
Découverte de vulnérabilités par la rétro-ingénierie
Leçon 1 • Intégration du fuzzing avec les résultats de la rétro-ingénierie
Utilise les connaissances issues de la rétro-ingénierie pour construire des harnais de fuzzing ciblés et des corpus de semences. Combine les informations statiques avec le fuzzing dynamique pour maximiser la découverte de vulnérabilités.
Leçon 2 • Identification des faiblesses cryptographiques
Reconnaît les algorithmes faibles, la gestion incorrecte des clés et le chiffrement personnalisé par analyse statique. Les étudiants évaluent la sécurité cryptographique sans accès au code source.
Leçon 3 • Défauts de logique et d'authentification
Localise les contournements d'authentification, les transitions d'état incorrectes et les situations de compétition par l'analyse de code. Démontre comment les erreurs de logique sont aussi dangereuses que les bogues mémoire.
Leçon 4 • Documentation et signalement des vulnérabilités
Structure les rapports de vulnérabilité avec les étapes de reproduction, l'analyse des causes profondes et les évaluations d'impact. Produit des livrables professionnels adaptés à la divulgation responsable.
Leçon 5 • Motifs de vulnérabilité de corruption mémoire
Identifie les dépassements de tampon, les use-after-free et les motifs de dépassement d'entier dans le désassemblage. Relie les motifs de code de bas niveau à leur impact sur la sécurité.
Chapitre 8MasquerCacher les détailsVoir les détailsFlux de travail avancés en rétro-ingénierie et automatisation
Flux de travail avancés en rétro-ingénierie et automatisation
Leçon 1 • Conception d'une méthodologie de rétro-ingénierie structurée
Établit un flux de travail reproductible allant du tri à l'analyse approfondie pour les binaires inconnus. Réduit les efforts gaspillés et assure une couverture cohérente sur les grandes cibles.
Leçon 2 • Exécution symbolique et concolique
Applique la résolution de contraintes pour explorer les chemins d'exécution et générer automatiquement des entrées ciblées. Étend l'analyse manuelle aux problèmes de couverture de chemins trop vastes pour une révision manuelle.
Leçon 3 • Différenciation binaire et analyse de correctifs
Compare les versions binaires pour isoler les fonctions corrigées et déduire les vulnérabilités corrigées. Essentiel pour l'analyse des écarts de correctifs et les tests de sécurité régressifs.
Leçon 4 • Cadriciels d'instrumentation dynamique
Utilise l'instrumentation binaire dynamique pour insérer une logique d'analyse au moment de l'exécution sans code source. Permet la mesure de la couverture, le suivi de la contamination et le traçage personnalisé à grande échelle.
Leçon 5 • Construction d'outils de rétro-ingénierie réutilisables
Conçoit des scripts, des plugins et des pipelines modulaires qui perdurent au-delà d'un seul engagement. Les étudiants produisent des outils partageables qui accélèrent les futurs travaux d'analyse.
Votre certificat valide de réussite
Ce cours est pour vous :
Testeur d'intrusion : veut dépasser les scanners automatisés pour travailler au niveau binaire.
Diplômé en informatique : prêt à jeter un pont réseau entre les connaissances académiques et la pratique concrète en sécurité.
Analyste de maliciels : a besoin d'une méthodologie structurée pour disséquer des échantillons inconnus en toute confiance.
Compétiteur CTF : sérieux dans l'intention de résoudre des défis de rétro-ingénierie à des niveaux de difficulté plus élevés.
Développeur de systèmes embarqués : curieux au sujet de la posture de sécurité de son propre micrologiciel compilé.
Personne en réorientation de carrière : passe du soutien TI à la sécurité offensive ou à la recherche en vulnérabilités.
Ce que nos apprenants disent
Vos cours sont parfaits. J'ai acheté le forfait d'un an et j'ai enfin l'opportunité de suivre divers sujets qui m'intéressent sans avoir à changer de plateforme... je vous remercie pour tout ce que vous faites, je vous ai déjà recommandés à d'autres personnes...

J'aime la façon dont les leçons vont droit au but et comment je peux changer de chapitres et passer le contenu dont je n'ai pas besoin.

J'aime le contenu et la façon dont il est présenté ainsi que la transcription des vidéos, ce qui accélère le processus !

La plateforme est rapide, simple à utiliser. La diversité du contenu et les vidéos complémentaires aident beaucoup dans l'apprentissage.

Formations principales
FAQ
Qui est Dedika?
Le certificat est-il valable au Canada ?
Les cours sont-ils gratuits?
Quelle est la charge de travail des cours?
Comment sont les cours?
Comment fonctionnent les cours?
Quelle est la durée des cours?
Quel est le coût ou le prix des cours?
Qu’est-ce qu’un cours EAD ou en ligne et comment ça fonctionne?
Cours PDF




















