Ce qui se passe
Un développeur a passé une journée à tester REA (« Reverse Engineer Anything »,
dépôt morluto/rea, paquet npm rea-agents 6.4.0, licence MIT). L'outil met des
logiciels de rétro-ingénierie à la portée d'agents comme Claude Code, Codex, Cursor ou
Gemini CLI, sous forme d'outils MCP. Le test date du 13 octobre 2026 (Ubuntu 24.04,
Node 24.20) et vise un seul programme, checkme : 30 lignes de C écrites par l'auteur,
qui compare une clé de 13 octets.
Comment c'est construit
rea mcp lance un serveur MCP en stdio ; sa liste d'outils en compte 170
(open_binary, analyze_function, batch_decompile, inspect_binary_layout…).
npx rea-agents setup l'enregistre auprès du client choisi et installe un skill qui
dicte l'ordre d'enquête.
REA ne décompile rien lui-même. Il délègue à un moteur : Ghidra 12.1.x (pont Java
ReaGhidraBridge, en mode headless, par socket Unix local), Hopper (pont Python) ou
IDA (par son propre enregistrement MCP, licence à votre charge). La licence MIT ne
couvre aucun de ces moteurs.
Chaque réponse est un enregistrement de preuve : evidence_id, SHA-256 du binaire,
fournisseur et version, résultat brut et normalisé, niveau de confiance (observé,
déduit, dérivé) et liste explicite de ce qui n'a pas été vérifié.
Ce que le test a mesuré
- Installation globale de
rea-agents: 1 min 51 s.rea doctorsignale les trois moteurs absents et dit comment les ajouter. - Chaque commande
rea,--helpcompris, démarre à froid en 20 à 30 s. rea inspect-binary-layout ./checkme --json: 22 s, environ 45 Ko de JSON. 31 sections, 13 segments, 48 symboles, 11 relocations ; PIE, NX, Full RELRO, pas de canari. Prérequis : un Python avec pwntools 4.15.0, pyelftools 0.33 et Unicorn 2.1.2, désigné parREA_PWNTOOLS_PYTHON.rea capture-processavec une mauvaise puis la bonne clé (environ 30 s chacune), puisrea compare-process-captures: la première divergence est « ACCESS DENIED » contre « ACCESS GRANTED ».- Moteur Ghidra : JDK Temurin 21 (198 Mo) plus Ghidra 12.1 (542 Mo), soit environ 740 Mo
à télécharger, avec
GHIDRA_INSTALL_DIRetJAVA_HOMEà définir. rea analyze ./checkme --provider ghidra --json: première tentative en échec (cleanup_incomplete, 3 min 26 s, cause non élucidée en conteneur), seconde réussie en 2 min 50 s, mais réduite à un aperçu : 30 procédures, 80 chaînes, aucun pseudo-code.rea function ./checkme check_key --provider ghidra --json: 2 min 42 s, un dossier d'environ 52 Ko avec pseudo-code, assembleur (76 octets, 0x101189 à 0x1011d4) et graphe d'appels. La logique apparaît : longueur comparée à0xd(13), XOR octet par octet avec la constante enDAT_00102004, somme nulle pour réussir.
Les limites
- C'est l'humain qui a compris le pseudo-code, décidé de lire les octets à
DAT_00102004et traduit0xden 13 caractères. Une erreur de lecture arrive avec un identifiant de preuve : elle paraît solide. - Malgré le titre de l'article, le journal montre surtout des commandes
reaen ligne de commande. Côté MCP, il ne consigne que la poignée de main (environ 23 s) et la liste des 170 outils : les quelque 160 autres ne sont pas vérifiés, et la latence en session n'est pas mesurée. - Seule la voie ELF native est testée, sur un programme non obfusqué. Sur la version strippée, la voie « layout » ne voit plus que 9 symboles dynamiques.
- « L'analyse reste sur votre machine » vient de la documentation de REA ; l'auteur ne l'a pas vérifié.
Que faire
Pour essayer : rea doctor dit ce qui manque, et la cible doit être un défi CTF ou un
programme à vous. L'auteur rappelle qu'analyser un logiciel sans autorisation peut
enfreindre le contrat de licence, l'article 1201 du DMCA (17 U.S.C. § 1201) et les lois
sur l'accès non autorisé.
Si vous écrivez un serveur MCP, le contrat vaut d'être copié : chaque résultat porte sa confiance et ses limites, au lieu d'un verdict.
Source : Letting an AI Agent Drive Ghidra: A Hands-On Test of REA's 170 MCP Tools,
DEV Community, Guangyi Zhao, publié le 19 octobre 2026. Source en anglais ; le dépôt
morluto/rea n'a pas été consulté.