DEV Community

Cover image for Qu’est-ce que REA (Reverse Engineer Anything) ? Le serveur MCP qui a atteint 115 000 étoiles GitHub en une semaine
Antoine Laurent
Antoine Laurent

Posted on Originally published at apidog.com

Qu’est-ce que REA (Reverse Engineer Anything) ? Le serveur MCP qui a atteint 115 000 étoiles GitHub en une semaine

Qu'est-ce que REA (Reverse Engineer Anything) ? Le serveur MCP qui a atteint 115 000 étoiles GitHub en une semaine

REA, abréviation de Reverse Engineer Anything, est un serveur MCP et une CLI open source qui donnent à un agent de codage les outils nécessaires pour démonter un logiciel sans son code source. Pointez Claude Code, Codex, Cursor ou un autre agent vers un binaire natif, une application Electron, un assembly .NET, un APK Android, un site web ou une capture réseau enregistrée, demandez comment fonctionne une fonctionnalité, et REA renvoie du pseudocode, des graphes de modules, des journaux de requêtes et les preuves derrière chaque affirmation. L'agent explique ensuite le comportement ou le reconstruit.

Essayez Apidog dès aujourd'hui

Le dépôt morluto/rea a été créé en avril 2026 et est resté presque ignoré jusqu'à la première semaine d'octobre. Au 12 octobre, il avait dépassé 115 000 étoiles et 25 000 forks, l'une des progressions les plus rapides vues sur GitHub. Ce guide couvre ce que fait REA, comment l'installer, ses points forts, les endroits où le battage dépasse la réalité, et la partie omise par la plupart des articles : REA lit les captures HAR et mitmproxy, ce qui en fait une interface pour l'ingénierie inverse d'API que vous pouvez finaliser dans Apidog.

Les chiffres derrière le battage

Le suivi quotidien de Trendshift montre la forme du pic. REA est apparu pour la première fois dans la liste des tendances le 4 octobre avec environ 1 400 nouvelles étoiles en une journée. Il a ensuite progressé de façon composée pendant une semaine.

Date Nouvelles étoiles ce jour-là
4 oct. 1 373
7 oct. 5 602
9 oct. 19 375
10 oct. 26 572
11 oct. 31 255

Le dépôt a conservé la première place des tendances GitHub pendant cinq des sept jours, du 6 au 12 octobre. Les versions ont suivi le rythme : la 3.2 est sortie le 3 octobre, la 4.0 le 5, la 5.0 le 7, la 6.0 le 8, et les 6.1 à 6.4 entre le 9 et le 11 octobre. Ce rythme compte pour quiconque l'adopte, et nous y reviendrons.

Aucun tweet ni bilan de lancement isolé n'explique ce bond. L'argumentaire a fait le travail : « Voyez une fonctionnalité qui vous plaît. Comprenez comment elle fonctionne, jusqu'au niveau binaire. » Les vidéos d'agents reconstruisant des applications de bureau à partir de leurs binaires se sont diffusées rapidement, accompagnées des déclarations habituelles selon lesquelles le logiciel est terminé. La lecture la plus utile est plus étroite. REA est un connecteur bien emballé entre les agents et des outils d'ingénierie inverse qui existaient déjà.

Ce que fait REA

REA fonctionne comme un serveur MCP local. Votre agent appelle ses outils, REA inspecte la cible avec le moteur approprié, et l'agent reçoit des résultats structurés accompagnés de leurs limites et de leurs inconnues. Les mêmes flux de travail existent en commandes CLI, donc vous pouvez les scripter sans agent.

REA

Ce qu'il analyse, d'après le tableau des cibles du README :

Cible Ce que REA renvoie Nécessite
Binaires natifs Pseudocode, assembleur, chaînes, symboles, références croisées Hopper, Ghidra ou IDA
Binaires Go Version du compilateur, modules, paramètres de build Rien de plus
Applications JavaScript et Electron Modules, imports, source maps, routes, frontières IPC Node.js uniquement
Sites web Structure de page, scripts, observations réseau, captures d'écran Un navigateur de la famille Chrome
Captures réseau enregistrées Requêtes, réponses, payloads, emplacements sources HAR ; mitmdump sous Linux pour mitmproxy
Assemblies .NET Métadonnées, CIL, dépendances natives Rien de plus
APK et appareils Android Manifeste, méthodes décompilées, journaux, captures d'écran JADX plus un JDK ; adb
Firmware Régions, résultats d'extraction Binwalk ou Unblob sous Linux
Bytecode WASM et EVM Sections, imports et exports, sélecteurs de dispatch WABT ; Linux x64

Le choix de conception qui distingue REA d'un simple wrapper est le modèle de preuve. Chaque résultat transporte sa provenance : condensés de fichiers, plages d'octets, pointeurs JSON vers la capture et liste explicite de ce que l'analyse n'a pas pu établir. Le projet le répète dans sa documentation. L'analyse s'exécute sur votre machine, mais la FAQ du README est claire : le fournisseur du modèle de l'agent reçoit toujours les résultats d'outils selon sa propre politique de données.

Comment installer REA

Vous avez besoin de Node.js 22.19 ou ultérieur (23 et 25 ne sont pas pris en charge) et de npm. Une commande enregistre le serveur MCP et installe les instructions de skill correspondantes pour votre agent :

npx rea-agents setup
Enter fullscreen mode Exit fullscreen mode

L'installation présente un plan, sauvegarde la configuration existante et n'écrit qu'après votre approbation. Selon le guide d'installation, il prend en charge Claude Code, Claude Desktop, Codex, Cursor, Gemini CLI, Windsurf, Devin, OpenCode, Antigravity, GitHub Copilot CLI, VS Code, Grok Build, Hermes et d'autres, chacun sélectionnable avec une option --client. Redémarrez ensuite l'agent, puis demandez-lui par exemple :

Understand how search works in the Notes app, show me the evidence,
and build a similar feature for my project.
Enter fullscreen mode Exit fullscreen mode

Pour une CLI globale :

npm install --global rea-agents
rea doctor --json
Enter fullscreen mode Exit fullscreen mode

L'analyse JavaScript statique, .NET, des sites web et des captures fonctionne sans moteur supplémentaire. L'analyse native approfondie nécessite Hopper, Ghidra 12.1 avec JDK 21 ou plus récent, ou IDA. L'installation peut installer Hopper avec votre approbation, mais Hopper est un logiciel commercial distinct avec sa propre licence. Ghidra sous Windows est marqué expérimental.

Ses points forts, à travers les démonstrations

Les études de cas du projet constituent le benchmark le plus honnête. Dans l'étude DX-Boll, l'agent a suivi un appel sonore jusqu'à sa fonction d'aide position-vers-pan, a transformé un pseudocode incomplet en C, et la reconstruction a réussi les 3 205 cas de test x86 d'origine tout en reproduisant les 63 octets de la fonction compilée. Dans l'étude Notion, il a suivi l'API du presse-papiers du renderer, via preload et IPC, jusqu'au processus principal d'Electron. Une troisième a retrouvé un calcul d'angle d'anneau de balles à partir d'instructions 16 bits d'un jeu PC-98 des années 1990.

Remarquez le schéma. Ce sont des questions étroitement cadrées sur une fonction ou un chemin de données, avec un moyen de vérifier la réponse. C'est là que l'ingénierie inverse pilotée par agent fonctionne aujourd'hui. Les démonstrations « reconstruis toute cette application » sont impressionnantes en vidéo et produisent quelque chose qui ressemble à la cible, mais une première revue testant REA contre un agent ordinaire sur une application Mac simple a trouvé un écart faible et une exécution plus lente avec REA. La valeur apparaît quand la question est précise et la cible complexe.

REA pour le travail API : de la capture à la spécification testée

Voici la partie utile à toute personne construisant contre des API. L'outil inspect_web_network_capture de REA lit un fichier HAR (ou une capture mitmproxy native sous Linux) hors ligne. Il ne rappele jamais les URL enregistrées. Il valide chaque entrée, conserve les corps de requête et de réponse avec leurs condensés, et exclut structurellement les en-têtes d'autorisation, les cookies et les identifiants d'URL de la preuve.

Il fait ensuite quelque chose qu'une équipe API reconnaîtra immédiatement. Transmettez la preuve conservée à inspect_analysis_view avec la vue api-surface, et REA regroupe chaque requête par méthode, origine et modèle de chemin inféré. Les identifiants numériques deviennent {numeric}, les UUID deviennent {uuid}, les longues chaînes hexadécimales deviennent {hex} et les dates deviennent {iso-date}. Chaque groupe cite les enregistrements dont il provient et signale les statuts ou types de contenu mixtes. Le guide des captures précise prudemment que la vue ne fait aucune affirmation de schéma ni de gestionnaire. C'est un inventaire inféré, pas une spécification.

Cet inventaire est exactement le point de départ du flux de notre guide d'ingénierie inverse des API, et Apidog le finalise :

  1. Capturez une fois. Dans Chrome DevTools, reproduisez le flux et enregistrez toutes les requêtes dans un HAR avec contenu. Utilisez un compte de test ; un HAR contient des jetons actifs.
  2. Laissez l'agent cartographier. Demandez à votre agent d'exécuter REA sur le HAR et de résumer la surface d'API. Vous obtenez la liste des endpoints, les motifs d'identifiants et les appels ayant renvoyé des erreurs, avec des pointeurs vers les enregistrements bruts.
  3. Importez le même HAR dans Apidog. Apidog transforme les requêtes capturées en endpoints, avec une option pour générer un cas de test par défaut par endpoint et supprimer les ressources statiques à l'import. Notre guide d'import HAR couvre le nettoyage.
  4. Promouvez les modèles inférés en vrais paramètres de chemin. Les placeholders {numeric} et {uuid} de REA indiquent les segments à paramétrer dans les définitions d'endpoints Apidog.
  5. Simulez et testez. Activez le smart mock d'Apidog pour que votre code client s'exécute contre l'API reconstruite avant de toucher à la vraie, puis écrivez des assertions sur les formes de réponse capturées et exécutez-les depuis l'CLI Apidog en CI.

La répartition est claire. REA excelle pour lire les preuves et les expliquer. Apidog est l'endroit où les endpoints deviennent un contrat documenté, simulé et testé que votre équipe peut partager. Aucun ne fait le travail de l'autre.

Réserves avant adoption

La vitesse de publication est une arme à double tranchant. Sept versions mineures sont sorties en neuf jours, et la politique always-bump-minor du projet signifie qu'une montée de version mineure peut introduire une rupture. Le guide de migration 6.2 a changé la forme de chaque résultat MCP. Si vous écrivez des scripts contre la sortie JSON de REA, épinglez la version et lisez le changelog avant la mise à jour.

C'est un connecteur, pas un bac à sable. La politique de sécurité du projet indique que son pont local de fournisseurs n'est pas un sandbox et que l'ouverture d'un binaire non fiable exécute son analyse avec vos permissions utilisateur. Analysez les cibles non fiables dans un environnement isolé, comme vous isoleriez les appels d'outils de n'importe quel agent.

Les limites de plateforme sont précises. Le décodage natif mitmproxy exige exactement mitmdump 12.2.3, sous Linux, fourni par vous. Les chemins d'extraction de firmware, EVM et WASM concernent Linux x64. Hopper n'a pas de version Windows.

La responsabilité juridique reste la vôtre. Le README limite REA à la recherche, l'analyse et la reconstruction licites, et précise que vous êtes responsable de l'autorisation. Copier une fonctionnalité concurrente reste la même question juridique qu'avant l'existence de l'outil. Le projet a aussi dû déclarer n'avoir émis aucun token et que les pièces utilisant son nom ne sont pas affiliées.

C'est encore tôt. Plus de 100 contributeurs et plus de 170 tickets et pull requests ouverts à la rédaction de cet article. La documentation est détaillée, mais attendez-vous à des aspérités hors des chemins présentés.

Questions fréquentes

REA est-il gratuit ? Oui. Le code est sous licence MIT et le paquet npm est gratuit. Hopper est un produit payant si vous le choisissez pour l'analyse native ; Ghidra est gratuit.

REA télécharge-t-il mon application ou mon binaire ? Non. L'analyse s'exécute localement. Les résultats d'outils vont au modèle utilisé par votre agent, donc la politique de données de ce fournisseur s'applique.

Ai-je besoin de Ghidra ou d'IDA pour commencer ? Pas pour l'analyse JavaScript, Electron, .NET, site web ou capture. Seule la décompilation de binaires natifs nécessite un moteur.

REA peut-il produire une spécification OpenAPI à partir du trafic ? Non. Sa vue api-surface est un inventaire inféré avec des modèles de chemin. Importez le HAR dans Apidog pour obtenir des définitions d'endpoints modifiables, puis exportez OpenAPI depuis là. Téléchargez Apidog pour tester l'import avec une capture que vous possédez déjà.

Où cela vous situe

REA a gagné ses étoiles en empaquetant de vrais moteurs d'ingénierie inverse derrière un serveur MCP et en documentant les preuves qu'il renvoie. Utilisez-le pour des questions cadrées : comment fonctionne une fonction, quel canal IPC transporte un message, à quoi ressemble le trafic d'une application. Traitez les démos de reconstruction totale comme des démos.

Pour les équipes API, le gain pratique est le chemin de capture. Laissez l'agent lire le HAR avec REA, importez ensuite le même fichier dans Apidog et transformez l'inventaire en endpoints que vous pouvez simuler, tester et documenter.

Top comments (0)