Présentation du projet
Le dépôt rea (Reverse Engineer Anything) propose une plateforme open‑source sous licence MIT qui orchestre des agents IA pour analyser le comportement d’applications et désassembler des binaires natifs. Le projet compte 145,6 k étoiles et 33,8 k fourches sur GitHub, ce qui indique une adoption massive dans la communauté reverse‑engineering.
Architecture et flux de travail
Les agents sont décrits dans le répertoire .agents/skills. Chaque compétence encapsule une tâche précise (extraction de métadonnées, appel à un désassembleur, génération de scripts de débogage) et s’appuie sur le Model‑Context‑Protocol (MCP) pour échanger des prompts et des réponses avec des grands modèles de langage (LLM) tels que Claude ou Codex. Le protocole transmet le contexte d’analyse (fichiers, traces d’exécution) sous forme de JSON, ce qui permet aux agents de conserver la cohérence entre les étapes de dynamique et de statique.
Le moteur principal s’exécute via une interface en ligne de commande (cli) qui invoque les agents selon un graphe de dépendances défini dans le fichier de configuration server.json. Les agents peuvent appeler des outils externes – Ghidra, Hopper, ou tout désassembleur compatible – grâce à des wrappers implémentés dans le répertoire src. Cette modularité facilite l’ajout de nouveaux outils sans modifier le cœur du système.
Analyse technique des capacités
En combinant LLM‑driven reasoning avec des analyses classiques (décompilation, désassemblage, tracing), rea réduit le temps nécessaire pour passer d’une observation d’exécution à une compréhension du code machine. Les LLM génèrent des hypothèses de fonction, des signatures d’API ou des diagrammes de flux, puis les agents valident ces hypothèses en exécutant les outils natifs. Cette boucle itérative limite les erreurs de « hallucination » typiques des modèles purement textuels, car chaque sortie est confrontée à une preuve concrète (ex. : un graphe de contrôle produit par Ghidra).
Le projet expose également un plugin d’intégration (dsh-plugin) qui permet d’utiliser les agents depuis le shell dsh, offrant ainsi une automatisation de bout en bout dans les pipelines CI/CD de sécurité. La présence de fichiers de tests (tests/) et d’un fichier de configuration vitest.config.ts montre que le code est couvert par des tests unitaires, renforçant la fiabilité du framework.
Limites et perspectives
Le principal facteur de dépendance reste l’accès aux LLM hébergés (Claude, Codex). Les coûts d’API et les quotas peuvent restreindre l’usage à grande échelle, et la latence introduite par les appels réseau impacte la rapidité de l’analyse dynamique. De plus, la qualité des résultats dépend de la capacité du modèle à interpréter correctement les artefacts binaires, ce qui peut varier selon le niveau d’obfuscation du code cible. Enfin, bien que le projet soit extensible, la création d’un nouvel agent nécessite la rédaction de prompts précis et la gestion du contexte MCP, ce qui impose une courbe d’apprentissage non négligeable.