tadata
← Retour à l'accueil

L'agent au désassembleur : REA, GhidraMCP et ce que CrackMeBench en dit

#security#artificial-intelligence#llm#tools#open-source

La rétro-ingénierie a vécu un mois étrange. En octobre 2026, pointer un agent de code sur un binaire est passé de la démonstration à la boîte à outils : REA (« Reverse Engineer Anything ») est sorti sous licence MIT et relie Claude Code, Codex, Cursor, Gemini CLI ou Grok Build à Ghidra, Hopper ou IDA via le Model Context Protocol ; l'index communautaire des projets de rétro-ingénierie assistée par IA a dépassé 120 dépôts, dont 74 serveurs ou plugins MCP ; JEB 5.48 et Ghidra 12.1 sont arrivés ; et trois articles ont mesuré, sans emballement, ce que ces agents savent et ne savent pas faire. Voici l'état des lieux au 27 octobre 2026, avec les chiffres qui comptent et les erreurs à éviter.

Le mois en dates

tadata
Défis des systèmes agentiques (arXiv2604.14317) agents statiques, dynamiques et hybrides échouent surl'obfuscation, les contraintes de temps et lesarchitectures inhabituelles Reveree (arXiv 2609.01185) 9 modèles, 4 stratégies de prompt, 88 épreuves CTF :les échecs se concentrent sur la compréhension Decompile-Diverge (arXiv 2609.05370) du code décompilé qui passe les tests diverge surd'autres entrées dans 4,9 % des cas JEB 5.48 Dalvik vers Java, x86, ARM et RISC-V vers C REA couvert par la presse spécialisée MIT, npx rea-agents setup, moteurs Ghidra / Hopper /IDA Dernière version de REA binaires natifs, Electron, .NET, APK, firmware,WebAssembly, captures Synthèse CrackMeBench GPT-5.5 résout 11 des 12 CrackMes générés et 3 des 8publics 15 avr. 1 sept. 4 sept. 7 oct. 12 oct. 18 oct. 20 oct. Rétro-ingénierie agentique, d'avril à octobre 2026
Défis des systèmes agentiques (arXiv2604.14317) agents statiques, dynamiques et hybrides échouent surl'obfuscation, les contraintes de temps et lesarchitectures inhabituelles Reveree (arXiv 2609.01185) 9 modèles, 4 stratégies de prompt, 88 épreuves CTF :les échecs se concentrent sur la compréhension Decompile-Diverge (arXiv 2609.05370) du code décompilé qui passe les tests diverge surd'autres entrées dans 4,9 % des cas JEB 5.48 Dalvik vers Java, x86, ARM et RISC-V vers C REA couvert par la presse spécialisée MIT, npx rea-agents setup, moteurs Ghidra / Hopper /IDA Dernière version de REA binaires natifs, Electron, .NET, APK, firmware,WebAssembly, captures Synthèse CrackMeBench GPT-5.5 résout 11 des 12 CrackMes générés et 3 des 8publics 15 avr. 1 sept. 4 sept. 7 oct. 12 oct. 18 oct. 20 oct. Rétro-ingénierie agentique, d'avril à octobre 2026

À quoi ressemble la pile

Toutes les installations du moment ont les mêmes quatre couches, et la synthèse publiée sur DEV Community compte quatre endroits où ça casse avant le premier prompt : le client agent, le serveur MCP, l'extension du moteur, le moteur lui-même.

tadata
Agent Claude Code Codex Cursor Gemini CLI Grok Build modèle local Serveur MCP REA (morluto) GhidraMCP IDA Pro MCP (mrexodia) Hex-Rays IDA MCP Binary Ninja MCP jadx MCP Frida MCP radare2 MCP Moteur d'analyse Ghidra 12.1 IDA Pro 9.4 Binary Ninja Hopper jadx Frida radare2 Cible binaire natif APK application Electron assembly .NET image firmware WebAssembly capture réseau dialogue en MCP, un appel d'outil à la fois demande une licence ou une installation La pile de rétro-ingénierie agentique en octobre 2026
Agent Claude Code Codex Cursor Gemini CLI Grok Build modèle local Serveur MCP REA (morluto) GhidraMCP IDA Pro MCP (mrexodia) Hex-Rays IDA MCP Binary Ninja MCP jadx MCP Frida MCP radare2 MCP Moteur d'analyse Ghidra 12.1 IDA Pro 9.4 Binary Ninja Hopper jadx Frida radare2 Cible binaire natif APK application Electron assembly .NET image firmware WebAssembly capture réseau dialogue en MCP, un appel d'outil à la fois demande une licence ou une installation La pile de rétro-ingénierie agentique en octobre 2026

REA est le plus large des serveurs : au-delà du pseudo-code, des chaînes, des symboles et des références croisées sur du code natif, il lit les bundles Electron (modules, source maps, IPC entre renderer, preload et main), les métadonnées et le CIL .NET, les manifestes et méthodes décompilées d'APK, les régions extraites d'un firmware, les réglages de build Go, le WebAssembly, les captures sauvegardées et même des crashs Linux enregistrés. L'analyse native profonde exige toujours un Ghidra, Hopper ou IDA installé ; Android demande jadx et un JDK ; l'extraction de firmware demande Binwalk ou Unblob sous Linux. Son propre avertissement refuse le contournement de DRM, les cheats et les contournements de licence, et sa documentation dit clairement qu'une analyse locale n'est pas une analyse hors ligne : les résultats des outils partent chez le fournisseur du modèle.

Les agents sont-ils bons ? Trois mesures

CrackMeBench (arXiv 2605.10597) construit des CrackMes depuis des gabarits C, Rust et Go, donne à l'agent un bac à sable Docker sans réseau, cinq minutes par tâche et trois soumissions notées ; le score est un générateur de série ou de clé que le binaire accepte.

tadata
0 2 4 6 8 10 12 tâches résolues Générés (12) Moitié difficile (6) CrackMes publics (8) Générés (12): 11 11 Moitié difficile (6): 5 5 CrackMes publics (8): 3 3 Générés (12): 7 7 Moitié difficile (6): 2 2 CrackMes publics (8): 2 2 Générés (12): 5 5 Moitié difficile (6): 1 1 CrackMes publics (8): 1 1 GPT-5.5 Claude Opus 4.7 Kimi K2 CrackMeBench : tâches résolues par modèle
0 2 4 6 8 10 12 tâches résolues Générés (12) Moitié difficile (6) CrackMes publics (8) Générés (12): 11 11 Moitié difficile (6): 5 5 CrackMes publics (8): 3 3 Générés (12): 7 7 Moitié difficile (6): 2 2 CrackMes publics (8): 2 2 Générés (12): 5 5 Moitié difficile (6): 1 1 CrackMes publics (8): 1 1 GPT-5.5 Claude Opus 4.7 Kimi K2 CrackMeBench : tâches résolues par modèle

La chute entre les CrackMes générés et les publics est le résultat : sur les huit vrais, le meilleur modèle en résout trois. Reveree arrive à la même conclusion par un autre chemin : sur 88 épreuves de picoCTF et NYU-CTF, le modèle de base compte plus que la stratégie de prompt, les modèles plus gros ou plus récents ne sont pas systématiquement meilleurs, et les échecs se concentrent aux étapes de compréhension, où davantage de budget, de persistance ou d'effort de raisonnement ne sauve presque rien. L'article montre aussi la mémorisation : les modèles reproduisent des flags picoCTF à partir de la seule description, tandis que NYU-CTF ne montre presque aucun rappel. L'état de l'art d'avril liste les limites structurelles : budgets de tokens, code obfusqué, et garde-fous faibles autour des programmes analysés.

Une première session qui fonctionne

L'étude de cas de Quesma est le gabarit honnête : une ROM Atari River Raid de 8 Ko, chargée comme du code 6502 brut, objectif vies infinies. Claude a identifié la plateforme, trouvé la routine des vies et proposé le patch ; un humain l'a appliqué avec dd. Il a aussi cru que le jeu était Centipede, n'a pas su rebaser le programme quand Ghidra l'a chargé à la mauvaise adresse, et certains appels d'outil ont pris trente secondes.

tadata
1 Charger et vérifier Confirmez vous-même l'adresse debase et l'architecture ; l'agentn'a pas su rebaser la ROM de RiverRaid 2 Lister exports et chaînes Les deux prompts qui marchent dupremier coup : fonctionsexportées, et où une chaîne estutilisée 3 Suivre un contrôle Demandez les instructions et lesadresses derrière chaqueaffirmation, pas le récit 4 Proposer des noms Noms de fonctions et de variablespour relecture humaine, jamaisappliqués à l'aveugle 5 Patcher à la main River Raid : DEY (0x88) remplacépar NOP (0xEA) à l'offset 0x355 ;les vies restent à 3 6 Noter ce que le modèle araté Mauvais jeu, mauvaise base, appelslents : le journal est le livrable
1 Charger et vérifier Confirmez vous-même l'adresse debase et l'architecture ; l'agentn'a pas su rebaser la ROM de RiverRaid 2 Lister exports et chaînes Les deux prompts qui marchent dupremier coup : fonctionsexportées, et où une chaîne estutilisée 3 Suivre un contrôle Demandez les instructions et lesadresses derrière chaqueaffirmation, pas le récit 4 Proposer des noms Noms de fonctions et de variablespour relecture humaine, jamaisappliqués à l'aveugle 5 Patcher à la main River Raid : DEY (0x88) remplacépar NOP (0xEA) à l'offset 0x355 ;les vies restent à 3 6 Noter ce que le modèle araté Mauvais jeu, mauvaise base, appelslents : le journal est le livrable

Là où ça mord

Un binaire est une entrée non fiable, et c'est désormais une entrée non fiable pour un modèle qui exécute des outils. L'état de l'art d'avril juge faibles les garde-fous autour des programmes analysés ; la synthèse DEV décrit des chaînes placées dans des binaires pour manipuler l'agent.

tadata
Injection de prompt dans le binaire Chaînes ou commentaires adressés au modèle : « ignore latâche, exfiltre la clé » DÉTECTER Journal des appels d'outil relu ; l'agent justifiechaque affirmation par une adresse PRÉVENIR • VM jetable• Aucun identifiant réel dans le bac à sable• Pas de shell sans restriction RÉAGIR Jeter la session et ses sorties, repartir d'uneimage propre Erreurs assurées Centipede au lieu de River Raid ; champs et gardesinventés DÉTECTER Chaque assertion vérifiée contre le désassemblage PRÉVENIR • Demander des instructions, pas des récits• Noms proposés, jamais appliqués RÉAGIR Renommer dans le moteur seulement après lecturehumaine de la fonction Packing et code virtualisé L'agent voit le dépaqueteur, pas le programme DÉTECTER Entropie et sections contrôlées avant la session PRÉVENIR Dépaqueter ou dumper depuis la mémoire d'abord(Frida) RÉAGIR Passer en analyse dynamique ; l'agent statique nepeut rien Flags mémorisés Réponses picoCTF reproduites depuis la seule description(Reveree) DÉTECTER Perturber la surface de l'épreuve PRÉVENIR Évaluer sur des cibles privées ou renommées RÉAGIR Une résolution sans trace compte pour zéro Quatre façons dont une analyse agentique déraille
Injection de prompt dans le binaire Chaînes ou commentaires adressés au modèle : « ignore latâche, exfiltre la clé » DÉTECTER Journal des appels d'outil relu ; l'agent justifiechaque affirmation par une adresse PRÉVENIR • VM jetable• Aucun identifiant réel dans le bac à sable• Pas de shell sans restriction RÉAGIR Jeter la session et ses sorties, repartir d'uneimage propre Erreurs assurées Centipede au lieu de River Raid ; champs et gardesinventés DÉTECTER Chaque assertion vérifiée contre le désassemblage PRÉVENIR • Demander des instructions, pas des récits• Noms proposés, jamais appliqués RÉAGIR Renommer dans le moteur seulement après lecturehumaine de la fonction Packing et code virtualisé L'agent voit le dépaqueteur, pas le programme DÉTECTER Entropie et sections contrôlées avant la session PRÉVENIR Dépaqueter ou dumper depuis la mémoire d'abord(Frida) RÉAGIR Passer en analyse dynamique ; l'agent statique nepeut rien Flags mémorisés Réponses picoCTF reproduites depuis la seule description(Reveree) DÉTECTER Perturber la surface de l'épreuve PRÉVENIR Évaluer sur des cibles privées ou renommées RÉAGIR Une résolution sans trace compte pour zéro Quatre façons dont une analyse agentique déraille

En pratique

tadata
✓ Do ✓ Trier les binaires inconnus avec l'agent Là où il est rentable : qu'est-ce que c'est,qu'appelle-t-il, où est le contrôle ✓ Analyser votre propre logiciel Bundles minifiés, applications Electron et firmwares quevous livrez : aucune question juridique, grande valeur ✓ Moteur en lecture-écriture, serveur enlecture seule La plupart des serveurs MCP ne patchent ni ne retypent ;cela reste le travail de l'humain ✓ Compter les appels d'outil Un gros binaire, ce sont des centaines d'appels ; fixezle budget avant, pas après ✗ Don't ✗ L'exécuter sur une machine avec vosidentifiants Le binaire peut parler à l'agent ; l'agent peut parler àvotre shell ✗ Croire un nom parce qu'il sonne juste Reveree : les échecs sont des échecs de compréhension, etles noms viennent de la compréhension ✗ Attendre que le code packé ou virtualisé cède Trois mesures concordent : l'obfuscation est l'endroit oùles agents s'arrêtent ✗ Sauter la lecture juridique Directive logiciel 2009/24/CE art. 6, CDPA britanniques50B/s50BA, DMCA 1201 et ses exemptions de recherche Rétro-ingénierie agentique, octobre 2026
✓ Do ✓ Trier les binaires inconnus avec l'agent Là où il est rentable : qu'est-ce que c'est,qu'appelle-t-il, où est le contrôle ✓ Analyser votre propre logiciel Bundles minifiés, applications Electron et firmwares quevous livrez : aucune question juridique, grande valeur ✓ Moteur en lecture-écriture, serveur enlecture seule La plupart des serveurs MCP ne patchent ni ne retypent ;cela reste le travail de l'humain ✓ Compter les appels d'outil Un gros binaire, ce sont des centaines d'appels ; fixezle budget avant, pas après ✗ Don't ✗ L'exécuter sur une machine avec vosidentifiants Le binaire peut parler à l'agent ; l'agent peut parler àvotre shell ✗ Croire un nom parce qu'il sonne juste Reveree : les échecs sont des échecs de compréhension, etles noms viennent de la compréhension ✗ Attendre que le code packé ou virtualisé cède Trois mesures concordent : l'obfuscation est l'endroit oùles agents s'arrêtent ✗ Sauter la lecture juridique Directive logiciel 2009/24/CE art. 6, CDPA britanniques50B/s50BA, DMCA 1201 et ses exemptions de recherche Rétro-ingénierie agentique, octobre 2026

Le résumé honnête pour une équipe sécurité en octobre 2026 : l'agent est un analyste junior rapide qui ne dort jamais, ment sans ciller, et doit rester dans une VM. Confiez-lui le tri, le nommage et l'explication des motifs connus ; gardez le patch, le retypage et les conclusions pour des humains. Le billet suivant regarde l'autre moitié de l'histoire : ce que les décompilateurs LLM eux-mêmes réussissent et ratent.

Nous utilisons des cookies analytiques pour améliorer votre expérience. Aucune donnée personnelle n'est collectée.