Choisissez votre langue
Cours de reverse engineering logiciel
Plus de 2 millions d'étudiants dans le monde

Cours de reverse engineering logiciel

Maîtrisez l'ensemble du flux de travail du rétro-ingénierie — de la lecture du langage assembleur brut à la défaite de l'obfuscation et à la découverte de vulnérabilités réelles. Ce cours vous donne la profondeur technique nécessaire pour analyser n'importe quel binaire compilé sur Windows, Linux ou macOS. Que vous cibliez des logiciels malveillants, des firmwares ou des logiciels propriétaires, vous repartirez avec des compétences que l'industrie exige réellement.

Dedika pour les entreprises

Ce que vous allez apprendre:

Vous bâtirez des bases solides en assembleur x86 et x86-64, en formats de fichiers binaires et en architecture CPU avant de passer à l'analyse statique et dynamique pratique. Vous utiliserez des désassembleurs, débogueurs et décompilateurs standard de l'industrie pour rétro-concevoir de véritables binaires et reconstituer la logique du programme de haut niveau. Le cours couvre les techniques d'obfuscation, l'analyse de packers et les contournements anti-débogage, afin que les cibles durcies ne vous arrêtent pas. Vous appliquerez également le rétro-ingénierie directement à la recherche de vulnérabilités, en identifiant les bugs de corruption mémoire, les défauts d'authentification et la cryptographie faible. Les modules avancés introduisent l'exécution symbolique, le diffing binaire, l'instrumentation dynamique et les workflows d'automatisation pour une 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 les entreprises, le cours inclut des exercices et des exemples adaptés à votre activité et aux besoins spécifiques de votre entreprise.

Cliquez ici

Contenu du cours

8 Chapitres • 40 LeçonsDurée entre 4 et 360 heures (vous décidez)

Chapitre 1Voir les détails

Fondamentaux du rétro-ingénierie

  • Leçon 1 • Configuration du laboratoire de RE

    Guide les étudiants dans la construction d'un environnement d'analyse isolé avec des machines virtuelles et les 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 le rétro-ingénierie

    Définit le 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 fetch-décodage-exécution. Fournit le modèle mental du 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 manière dont les chargeurs les mappent en mémoire. Relie la connaissance des formats de fichiers aux tâches ultérieures de désassemblage et de correction.

Chapitre 2Voir les détails

Langage assembleur pour ingénieurs en rétro-ingénierie

  • Leçon 1 • Différences et extensions x86-64

    Met en lumière l'extension des registres, l'adressage relatif à RIP et les bases des instructions 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 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 des valeurs selon les principales conventions d'appel. Essentiel pour comprendre correctement 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 d'un programme à partir de séquences d'instructions brutes.

  • Leçon 5 • Reconnaissance de constructions haut niveau

    Mappe les motifs 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 les opcodes bruts.

Chapitre 3Voir les détails

Techniques d'analyse statique

  • Leçon 1 • Annotation et renommage des symboles

    Couvre le renommage systématique des fonctions, variables et 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'appels 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 et des importations

    Extrait les chaînes significatives, les API importées et les signatures de bibliothèques pour déduire le comportement du programme. Fournit un triage rapide avant une analyse approfondie du code.

  • Leçon 4 • Script des tâches d'analyse statique

    Introduit l'automatisation des tâches statiques répétitives à l'aide des API de script du désassembleur. Les étudiants écrivent des scripts qui renomment, annotent et extraient des données à grande échelle.

  • Leçon 5 • Les désassembleurs et leur fonctionnement interne

    Compare les algorithmes de désassemblage par balayage linéaire et par descente récursive ainsi que leurs compromis. Les étudiants choisissent le mode d'outil approprié pour chaque scénario d'analyse.

Chapitre 4Voir les détails

Analyse dynamique et débogage

  • Leçon 1 • Détection et contournement de l'anti-débogage

    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 réelle.

  • 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 multi-threadées.

  • 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 à l'exécution pour vérifier les résultats statiques. 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 comprendre des cibles complexes.

Chapitre 5Voir les détails

Décompilation et récupération de code

  • Leçon 1 • Gestion des optimisations du compilateur

    Identifie les artefacts d'inlinage, de déroulage de boucle 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 classes à 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 le name mangling C++, la dispatch virtuelle et le RTTI pour reconstituer 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 levage vers une représentation intermédiaire, la récupération de type et la génération de pseudo-code. Définit 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é de base du désassemblage.

Chapitre 6Voir les détails

Techniques d'obfuscation et d'anti-analyse

  • Leçon 1 • Obfuscation basée sur la virtualisation

    Introduit les protecteurs par machine virtuelle personnalisés, les boucles de dispatch de bytecode et l'identification des handlers. Les étudiants développent une méthodologie pour inverser partiellement le code protégé par VM.

  • Leçon 2 • Obfuscation des chaînes et des données

    Couvre l'encodage XOR, la construction de chaînes sur la pile et les routines de déchiffrement personnalisées. Les étudiants extraient les chaînes en 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 taint pour automatiser la désobfuscation à grande échelle. Fait le pont entre les techniques manuelles et les workflows assistés par 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. Fournit aux étudiants un cadre de classification pour identifier l'obfuscation à vue.

  • Leçon 5 • Packeurs et protecteurs

    Explique les stubs de dépaquetage à l'exécution, la reconstruction des importations et les workflows de vidage mémoire. Les étudiants récupèrent l'exécutable d'origine à partir d'échantillons packés ou protégés.

Chapitre 7Voir les détails

Découverte de vulnérabilités par le RE

  • Leçon 1 • Intégration du fuzzing avec les résultats du RE

    Utilise les connaissances issues du RE pour construire des harnais de fuzzing ciblés et des corpus de départ. Combine la perspicacité statique 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 la crypto personnalisée 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 conditions de course par revue de code. Démontre que les erreurs de logique sont aussi dangereuses que les bugs mémoire.

  • Leçon 4 • Documentation et rapport des vulnérabilités

    Structure les rapports de vulnérabilité avec les étapes de reproduction, l'analyse de cause racine et les évaluations d'impact. Produit des livrables professionnels adaptés à une divulgation responsable.

  • Leçon 5 • Motifs de vulnérabilités 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 bas niveau à leur impact sur la sécurité.

Chapitre 8Voir les détails

Workflows avancés de RE et automatisation

  • Leçon 1 • Conception d'une méthodologie de RE structurée

    Établit un workflow reproductible de triage à l'analyse approfondie pour les binaires inconnus. Réduit les efforts inutiles et garantit une couverture cohérente sur de 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 importants pour une revue 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é par régression.

  • Leçon 4 • Frameworks d'instrumentation dynamique

    Utilise l'instrumentation binaire dynamique pour insérer de la logique d'analyse à l'exécution sans code source. Permet la mesure de couverture, le traçage de taint et le traçage personnalisé à grande échelle.

  • Leçon 5 • Construction d'outils de RE réutilisables

    Conçoit des scripts, des plugins et des pipelines modulaires qui persistent au-delà d'une seule mission. Les étudiants produisent des outils partageables qui accélèrent les futurs travaux d'analyse.

Certification

Votre certificat valide de réussite

Ce cours est fait pour vous :

  • Testeur d'intrusion : souhaite dépasser les scanners automatisés pour travailler au niveau binaire.

  • Diplômé en informatique : prêt à faire le pont entre les connaissances académiques et la pratique réelle de la sécurité.

  • Analyste de malwares : a besoin d'une méthodologie structurée pour analyser des échantillons inconnus avec confiance.

  • Compétiteur de CTF : sérieusement intéressé par la résolution de défis de rétro-ingénierie à des niveaux de difficulté élevés.

  • Développeur de systèmes embarqués : curieux de connaître la posture de sécurité de son propre firmware compilé.

  • Personne en reconversion professionnelle : passe du support informatique à la sécurité offensive ou à la recherche de vulnérabilités.

Ce que disent nos apprenants

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 besoin de changer de plateforme... je vous remercie pour tout ce que vous faites, je vous ai déjà recommandés à d'autres personnes...
Giulio Carlo
Giulio CarloÉtudiant en Marketing Digital
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.
Mariana Ferres
Mariana FerresÉtudiante en Photographie
J'aime le contenu et la façon dont les vidéos sont présentées et transcrites, ce qui accélère le processus !
Luciana Alvarenga
Luciana AlvarengaÉtudiante en Design d'Ongles
La plateforme est rapide, simple à utiliser. La diversité du contenu et les vidéos complémentaires aident beaucoup dans l'apprentissage.
André Felipe
André FelipeÉtudiant en Ingénierie de Prompt

Formations principales

FAQ

Qui est Dedika ?

Le certificat est-il valable en France ?

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 marche ?

Cours PDF