Bases du désassemblage
Ghidra et IDA
Bases du désassemblage est une leçon Ethical Hacking Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Ethical Hacking Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ethical Hacking Academy comprend 4 leçons au total.
Qu’est-ce que le désassemblage ?
Le désassemblage convertit le code machine d’un binaire en instructions d’assembleur lisibles par l’être humain. Il vous permet de lire exactement ce que le CPU va exécuter.
Cette étape est essentielle lorsque le code source n’est pas disponible, ce qui est toujours le cas pour les logiciels malveillants.
Désassemblage et décompilation
Le désassemblage produit de l’assembleur. La décompilation va plus loin en reconstruisant un pseudo-code approximatif de haut niveau, similaire au langage C.
Le pseudo-code est plus rapide à lire ; l’assembleur est précis. Les analystes utilisent les deux et passent de l’un à l’autre selon leurs besoins.
Ghidra
Ghidra est une suite gratuite et libre de rétro-ingénierie créée par la NSA. Elle désassemble de nombreuses architectures et inclut un décompilateur performant.
Son prix et ses capacités en font l’outil de départ privilégié de la plupart des analystes.
IDA Pro
IDA Pro est depuis longtemps la référence commerciale, connue pour son puissant désassembleur et son décompilateur (avec le module externe Hex-Rays).
IDA Free et d’autres outils comme Binary Ninja et radare2/Cutter sont des solutions populaires.
Chargement du binaire
Vous importez l’échantillon dans l’outil, qui l’analyse automatiquement : il identifie les fonctions, les références croisées et les chaînes.
L’outil construit une carte du programme que vous pouvez parcourir, en commençant par le point d’entrée ou par des importations intéressantes.
Lecture de l’assembleur
Les instructions d’assembleur déplacent et traitent des données. Voici quelques instructions x86 courantes :
mov: copier des données.push / pop: opérations sur la pile.call / ret: appel et retour de fonction.cmp / jmp / je: comparaison et branchement.
mov eax, [ebp-4]
cmp eax, 0
je short loc_401050Références croisées
Les références croisées (xrefs) indiquent où une fonction ou une chaîne est utilisée. Trouver les xrefs vers une API suspecte comme CreateRemoteThread vous conduit directement au code pertinent.
Vous pouvez ainsi naviguer en fonction du comportement plutôt que de lire le code de haut en bas.
Suivi des appels d’API
Les appels aux API Windows importés révèlent l'intention. Voir VirtualAlloc, puis WriteProcessMemory, puis CreateRemoteThread constitue une séquence classique d'injection de processus.
La reconnaissance de ces schémas est au cœur de l'analyse à rebours des logiciels malveillants.
Vue en graphe
Les désassembleurs proposent une vue en graphe qui affiche les blocs de base et les branchements entre eux. Elle représente le flux de contrôle d'une fonction, ce qui facilite le suivi des boucles et des conditions.
Pour une logique complexe, elle est bien plus lisible qu'une liste linéaire d'instructions.
Association avec le débogage
Le désassemblage statique s'associe bien à un débogueur. Lorsque le code est obfusqué ou se modifie lui-même, vous pouvez définir des points d'arrêt et l'exécuter pas à pas lors de l'exécution afin d'observer les véritables instructions.
Ce lien avec l'analyse dynamique est essentiel pour les échantillons protégés par un empaqueteur, que la prochaine leçon présentera.
Renommer et annoter
À mesure que vous comprenez les fonctions et les variables, renommez-les et ajoutez des commentaires dans le désassembleur. Transformer sub_401000 en decrypt_config rend la suite de l'analyse beaucoup plus facile.
Ce marquage progressif permet aux analystes de reconstituer peu à peu toute la logique d'un échantillon malveillant.
Vérification rapide
Rappelez-vous la différence entre les deux principales sorties de Ghidra.
Récapitulatif
Vous comprenez maintenant les bases du désassemblage :
- Le désassemblage produit de l'assembleur ; la décompilation produit du pseudocode.
- Ghidra (gratuit) et IDA Pro sont les principaux outils.
- Utilisez les références croisées et les schémas d'appels d'API (comme les séquences d'injection) pour vous orienter grâce au comportement.
- La vue en graphe représente le flux de contrôle ; associez-la à un débogueur pour le code obfusqué.
Ensuite, vous neutraliserez les empaqueteurs en procédant au dés-empaquetage.
Questions Fréquemment Posées
La leçon « Bases du désassemblage » est-elle gratuite ?
Oui — le texte complet de « Bases du désassemblage » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Ethical Hacking Academy, passe à CoddyKit PRO. Le cours Ethical Hacking Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Bases du désassemblage » ?
Ghidra et IDA Tu pratiques Ethical Hacking Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Ethical Hacking Academy ?
Aucune expérience préalable n'est requise. Ethical Hacking Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Bases du désassemblage » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Ethical Hacking Academy ?
Oui. Chaque leçon Ethical Hacking Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Analyse statique
- Analyse dynamique
- Bases du désassemblage
- Dépaquetage