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

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.

Dedika pour entreprises

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.

Cliquez ici

Contenu du cours

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

Chapitre 1Voir les détails

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 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 é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 3Voir les détails

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 4Voir les détails

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 5Voir les détails

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 6Voir les détails

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 7Voir les détails

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 8Voir les détails

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.

Certification

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...
Giulio Carlo
Giulio CarloÉtudiant en Marketing Numérique
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 il est présenté ainsi que la transcription des vidéos, 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 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