Deepseek ArtifactsDeepseek Artifacts
Guide open source sur GitHub

REA (Reverse Engineer Anything) : installer et utiliser des compétences de rétro-ingénierie dans Claude Code / Codex

REA, c'est morluto/rea sur GitHub : un serveur MCP sous licence MIT, une CLI et une compétence d'agent reverse-engineer-anything qui permettent à Claude Code, Codex, Cursor et d'autres clients d'inspecter des binaires, des applications Electron, des assemblys .NET, des APK et des sites — en local, avec des preuves. Voici l'installation vérifiée, les premières commandes et l'endroit où passe réellement la limite légale.

REA en un coup d'œil

  • Un projet, trois pièces : le paquet npm `rea-agents` fournit la CLI `rea`, un serveur MCP local et la compétence `reverse-engineer-anything` qui indique à l'agent quel outil convient à quelle cible.
  • L'installation tient en une commande à valider : `npx rea-agents setup` liste les chemins de configuration exacts, les sauvegardes et les emplacements de compétences, puis attend votre approbation. Rien n'est écrit avant.
  • Claude Code, Codex et Cursor ont aussi chacun une voie native — deux invites `/plugin`, deux commandes `codex plugin`, ou un plugin du Cursor Marketplace — et setup sait configurer 28 clients directement.
  • REA n'est pas un bac à sable et ne décide pas de ce qui est légal : elle s'exécute avec les permissions de votre utilisateur sur des cibles que vous devez être autorisé à analyser, et l'avertissement du projet liste lui-même ce qu'il refuse d'aider à faire.

morluto/rea — README

Source: github.comchecked 2026-11-13

Ouvrir

docs/getting-started/installation.md

Source: github.comchecked 2026-11-13

Ouvrir

.agents/skills/reverse-engineer-anything/SKILL.md

Source: github.comchecked 2026-11-13

Ouvrir

docs/getting-started/cli.md

Source: github.comchecked 2026-11-13

Ouvrir

rea-agents — npm registry

Source: registry.npmjs.orgchecked 2026-11-13

Ouvrir

DISCLAIMER.md + SECURITY.md

Source: github.comchecked 2026-11-13

Ouvrir

dsh-rea — DeepSeek Harness directory

Source: deepseekharnessplugins.comchecked 2026-11-13

Ouvrir

dsh-reverse-skill — DeepSeek Harness directory

Source: deepseekharnessplugins.comchecked 2026-11-13

Ouvrir

Toutes les commandes, ID de clients, versions et chiffres de cette page ont été lus dans les sources ci-dessus le 2026-11-13 : le README du dépôt, docs/getting-started/installation.md, le SKILL.md fourni dans le paquet, docs/getting-started/cli.md, DISCLAIMER.md et SECURITY.md, ainsi que le registre npm. Les données du dépôt viennent de l'API GitHub le même jour : 455,720 stars, 111,916 forks, créé le 2026-04-14 ; dernière version npm `rea-agents` 6.9.0, publiée le 2026-11-12. Le nombre d'étoiles bouge chaque jour : traitez-le comme un instantané daté. Cette page ne cite aucun chiffre de performance : le README et la documentation que nous avons vérifiés ne donnent aucun résultat de benchmark.

Ce qu'est réellement REA

REA signifie Reverse Engineer Anything. C'est un projet open source tiers de morluto, sous licence MIT, sur github.com/morluto/rea, avec le site rea.tools. Ce n'est ni un produit Anthropic, OpenAI ou Cursor, ni un décompilateur : c'est la couche qui permet à un agent de codage de piloter des décompilateurs et des parseurs statiques, puis d'expliquer ce qu'il a trouvé.

La distribution est le paquet npm `rea-agents`. Il expose la commande `rea`, un serveur MCP local et la compétence `reverse-engineer-anything` — un document de workflow qui demande à l'agent d'orienter d'abord la cible (ASAR/Electron, archive, APK, .NET, firmware, binaire natif, page web, capture) et de rattacher chaque conclusion à une Evidence. L'analyse tourne sur votre machine ; l'agent reçoit les résultats des outils, et son fournisseur de modèle applique sa propre politique de données.

L'analyse native approfondie suppose votre propre moteur : Hopper, Ghidra, IDA ou Kuna. Setup peut installer Hopper après une approbation distincte, et il réutilise un Ghidra, un IDA ou un Kuna déjà présent. L'inspection statique JavaScript/Electron et .NET ne demande aucun moteur natif — c'est pourquoi un premier test sur une application Electron est le moyen le moins coûteux de savoir si REA mérite sa place dans votre workflow.

version npm
rea-agents 6.9.0
Licence
MIT
Étoiles GitHub
455,720
Dépôt créé le
2026-04-14

Ce qu'elle sait examiner

Le tableau des cibles du README compte 39 lignes ; voici la partie qui décide si vous l'installez. La dernière colonne est l'exigence réellement donnée par la doc — la plupart des lignes ne demandent rien de plus que Node.js.

CibleCe que vous obtenezNécessite
JavaScript / ElectronModules, imports, source map, routes, frontières IPC et add-ons natifs — en statique, sans lancer l'application.Node.js + npm (sous Linux, un `ps` de procps)
Native binariesPseudocode, assembleur, chaînes, symboles, appels et références croisées.Hopper, Ghidra, IDA ou Kuna
.NET assembliesMétadonnées, instructions CIL, dépendances natives déclarées, comparaisons de builds.Rien de plus (statique uniquement)
Android APKDéclarations du manifeste, classes, méthodes décompilées et références ; faits sur la signature APK.JADX headless + un JDK complet (les signatures ne demandent rien)
Websites / capturesStructure de la page, scripts, observations réseau, captures d'écran demandées ; captures HAR et SAZ.Un navigateur de la famille Chrome (captures : HAR ou SAZ)
Go / Rust / PE / WASMInfos de build Go, crates Rust cargo-auditable, imports et certificats PE, notes ELF, WASM, indicateurs de durcissement.Rien de plus (statique uniquement)
Archives / firmwareInventaire et extraction des membres pour ZIP/APK/IPA/MSIX/DMG, Godot PCK, UnityFS, wxapkg ; régions de firmware.Binwalk ou Unblob sous Linux, pour le firmware
GGUF / safetensorsMétadonnées GGUF et safetensors, déclarations de tenseurs, hash complet du fichier en option.Rien de plus (statique uniquement)
Release exposureUn rapport d'exposition de release avec des ID de contrôles stables, des statuts et des remédiations : source maps livrées, fuse Electron, marqueurs d'identifiants.Rien de plus (statique uniquement)

Deux frontières méritent une seconde lecture. L'inspection statique analyse des fichiers et ne lance pas la cible ; la capture à l'exécution, les scénarios navigateur et les workflows sur appareil, eux, la lancent ou interagissent avec elle, avec les permissions de votre utilisateur. Et chaque résultat porte ses propres limites et inconnues — la doc dit clairement qu'un rapport d'exposition de release propre ne signifie pas qu'une application est sûre.

Installation : une commande à valider, puis des voies par client

Setup est interactif par défaut : il liste les clients pris en charge, montre les fichiers exacts qu'il va modifier avec les sauvegardes, et demande avant d'écrire. L'approbation du téléchargement npm et l'approbation propre à REA sont deux invites distinctes : approuver npm n'approuve pas les modifications de configuration.

1. L'installation guidée — valable pour tout client pris en charge

Lancez-la avec Node.js et npm dans le PATH. Sélectionnez les clients (les enregistrements REA existants sont présélectionnés, les nouveaux détectés ne le sont pas), lisez le plan, approuvez. Ensuite, redémarrez complètement les agents nommés dans le message de fin : un client en cours d'exécution peut écraser son propre enregistrement. Pour les scripts, ajoutez `--client <id>` et commencez par `--dry-run --json` pour obtenir un plan en lecture seule.

Commandes

npx rea-agents setupnpx rea-agents setup --client claude_code --dry-run --json

2. Claude Code : deux invites /plugin, sans lancer setup

Le paquet npm de REA est aussi un plugin Claude Code. Ajoutez le dépôt comme marketplace, puis installez `rea@rea`. Un plugin ne lance pas `rea setup` : la configuration des moteurs (chemins Ghidra/IDA) vient donc toujours des sections ci-dessous, et `rea doctor` signale le plugin comme `missing` — vérifiez-le avec `/plugin` et `/mcp`. Pour un client donné, utilisez le plugin ou un enregistrement par setup, jamais les deux, sinon deux serveurs `rea` démarrent.

Commandes

/plugin marketplace add morluto/rea/plugin install rea@rea

3. Codex : le même plugin, deux commandes codex

Le même paquet npm contient un manifeste `.codex-plugin`. Ajoutez la marketplace, puis installez `rea@rea`. Le client a besoin d'un `node` autonome dans le PATH. Comme pour Claude Code, une installation par plugin est invisible pour `rea doctor` ; vérifiez-la avec `codex plugin list`.

Commandes

codex plugin marketplace add morluto/reacodex plugin add rea@rea

4. Cursor : enregistrement par setup ou plugin du Marketplace

`rea setup --client cursor` écrit `~/.cursor/mcp.json` plus la compétence gérée par setup. Le Marketplace de Cursor liste aussi le dépôt comme plugin regroupant la compétence et un serveur MCP `rea` épinglé à une version publiée ; cette voie est une copie Git et ne place pas `rea` dans le PATH. Choisissez l'une des deux, pas les deux.

Commandes

npx rea-agents setup --client cursor

5. Compétence seule — des instructions sans outils

Si vous ne voulez que les instructions, par exemple pour les associer à un serveur MCP enregistré à la main, installez la compétence depuis skills.sh. L'agent obtient alors les règles d'orientation et les références fournies, mais aucun outil n'est enregistré : les appels REA restent absents tant qu'un serveur MCP n'existe pas.

Commandes

npx skills add morluto/rea --skill reverse-engineer-anything

6. Vérifiez avant de faire confiance

`rea doctor` est en lecture seule. Vérifiez séparément un client, la compétence installée et un moteur : l'échec d'un fournisseur ne bloque pas les outils sans cible, et une vérification de client valide l'enregistrement, pas une enquête réussie. Doctor lit des fichiers et des prérequis ; il ne voit pas la session en cours, donc un serveur enregistré a quand même besoin d'un redémarrage ou d'une reconnexion.

Commandes

rea doctor --client claude_code --jsonrea doctor --skill --jsonrea doctor --provider ghidra --json

Prérequis, tels que documentés

  • 1Node.js 22.x (>= 22.23.4), 24.x (>= 24.22.1) ou 26.12.1+, plus le npm associé. Node 23, 25, les versions 26.x antérieures et les préversions ne sont pas prises en charge.
  • 2Un client qui prend en charge les serveurs MCP locaux. Setup connaît 28 ID de clients, dont claude_code, claude_desktop, codex, cursor, gemini_cli, windsurf, opencode, copilot_cli, antigravity, kimi, dsh et pi.
  • 3Un moteur natif uniquement pour le travail natif. L'analyse statique JavaScript/Electron et .NET ne demande rien de plus ; Android demande JADX headless et un JDK ; le firmware demande Binwalk ou Unblob sous Linux.
  • 4Récupérez le paquet depuis un répertoire de confiance, hors du projet cible, et passez des chemins absolus aux commandes d'analyse — un lanceur de paquets peut sélectionner des paquets locaux au projet, et REA ne peut pas vérifier ce qui s'est passé avant le démarrage de son point d'entrée.

Une première session qui prouve quelque chose

Le test honnête le moins coûteux, c'est une fonctionnalité que vous comprenez déjà, dans une application qui vous appartient, sur une cible sans moteur natif en travers du chemin. Demandez les preuves, pas seulement la réponse : l'intérêt de REA est que l'agent doit montrer le chemin de code qu'il affirme.

Demandez à l'agent

L'exemple du README lui-même, mot pour mot. Remplacez Notes par votre cible et la fonctionnalité par quelque chose que vous pouvez vérifier à la main. Attendez-vous à ce que l'agent appelle les outils REA, lise l'Evidence et nomme les parties qu'il n'a pas pu établir — s'il répond sans preuve, la connexion MCP ou la compétence manque probablement.

Invite

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

Ou pilotez la CLI vous-même

Chaque workflow MCP a son jumeau en CLI, ce qui est le moyen le plus rapide de vérifier une affirmation sur REA. La première commande renvoie un enregistrement Evidence pour un répertoire Electron extrait ou une archive ASAR, sans aucun moteur ; la seconde audite un artefact livré et sort avec le code 3 quand un contrôle exposé atteint la sévérité que vous passez.

Commandes

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --jsonrea audit-release-exposure ./dist/MyApp.app --fail_on high --json

Pourquoi la sortie est volumineuse — et quoi en faire

L'Evidence d'une vraie application peut atteindre des centaines de mégaoctets. La réponse documentée est de l'enregistrer puis de projeter une vue : `rea analyze-javascript-application … > app-evidence.json`, puis `rea inspect-analysis-view` avec un résumé ou une page de modules. Via MCP, `REA_MCP_MAX_RESPONSE_BYTES`, `REA_MCP_INPUT_SCHEMA_PROFILE=full` et `REA_MCP_OUTPUT_SCHEMA_PROFILE=compact` règlent la part que le modèle en voit.

Mise à jour et suppression

`rea update` met à jour l'installation globale npm ou Bun qui possède la CLI en cours ; une installation par `npx` se rafraîchit en relançant `npx rea-agents@latest setup`. `rea uninstall` ne retire que les enregistrements et fichiers de compétences propres à REA, `--purge-data` supprime en plus le cache et l'état, et ni l'un ni l'autre ne touche Hopper, Node.js, les fichiers Evidence ou des compétences sans rapport.

Commandes

rea updatenpx rea-agents@latest setuprea uninstallrea uninstall --purge-data

REA face au travail manuel et face aux paquets de compétences seuls

La comparaison honnête n'oppose pas REA à un humain spécialiste de la rétro-ingénierie. Elle oppose REA au même agent avec un shell et sans outils, puis aux paquets de compétences qui livrent des instructions mais pas de serveur.

AspectAgent + shell, sans REAAgent + REA
Câblage des outilsVous collez commandes et chemins dans le chat et le modèle devine quel flag de décompilateur utiliser.La compétence oriente la cible vers un outil doté d'un schéma ; le serveur valide les arguments et renvoie une Evidence structurée.
PreuvesCe que l'agent cite, sans trace du fichier ou de l'offset d'où cela vient.Les conclusions portent leurs preuves et leurs limites, et les inconnues restent listées au lieu d'être lissées.
Sortie volumineuseUn dump de 300 Mo soit fait exploser la fenêtre de contexte, soit se fait tronquer par `head`.L'Evidence est enregistrée et projetée — résumé, page de modules ou module unique — avant d'atteindre le modèle.
Paquets d'instructions seulsUn paquet de compétences de rétro-ingénierie enseigne la méthode mais n'enregistre aucun outil, donc l'agent passe quand même par le shell.REA livre les deux moitiés : la compétence et le serveur MCP/CLI qu'elle décrit. Les installations compétence seule sont prises en charge mais laissent les outils absents.

Limites légales et de sécurité — issues du projet, pas inventées ici

Ce sont les DISCLAIMER.md et SECURITY.md de REA qui tracent la limite, et elle est plus stricte que ne l'est d'ordinaire le marketing autour de tels outils. Version courte : pouvoir analyser un logiciel n'est pas la même chose qu'y être autorisé.

  • Usages prévus : recherche en sécurité, analyse de malwares et d'incidents, recherche de vulnérabilités et divulgation coordonnée, CTF et enseignement, interopérabilité, préservation de logiciels, et audit de logiciels que vous possédez ou êtes autorisé à examiner.
  • Explicitement non pris en charge : contourner les DRM, les contrôles de licence, l'anti-triche ou d'autres mesures techniques de protection ; les triches de jeu ou la manipulation de services en ligne ; contourner une authentification ou des contrôles d'accès que vous n'êtes pas autorisé à tester ; copier du code et des ressources propriétaires ; échapper aux politiques des fournisseurs de modèles.
  • C'est à vous d'établir l'autorisation. La disponibilité publique d'un binaire, la possession d'un fichier ou l'accès à un point de débogage ne donnent pas en soi une permission, et la rétro-ingénierie peut être restreinte par la loi ou par la licence du logiciel dans votre juridiction.
  • Les outils commerciaux restent commerciaux : IDA Pro/Hex-Rays, Hopper et JEB doivent être obtenus et licenciés légalement. REA ne fournit aucune clé, licence ou activation, et les copies craquées ou les clés partagées ne sont pas autorisées.

Deux autres points pratiques de SECURITY.md : REA n'est pas un bac à sable — la CLI et MCP s'exécutent avec les permissions de votre compte — et les fichiers cibles, captures et pages web sont des données non fiables, donc une instruction intégrée dans un binaire n'est pas une instruction venant de vous. Utilisez une VM jetable ou un conteneur pour tout ce que vous n'avez pas construit, et ne pointez jamais des workflows à l'exécution vers des systèmes que vous ne possédez pas.

Avant d'installer : cinq réserves honnêtes

Aucune n'est une raison d'écarter REA ; toutes sont des raisons de l'essayer d'abord sur une seule cible.

  • 1C'est un projet tiers qui bouge vite : npm est passé de 6.8.0 à 6.9.0 en moins de trois semaines, et la doc prévient qu'une compétence installée depuis `main` peut décrire des capacités qu'une version npm plus ancienne n'a pas. Faites foi à la liste d'outils du serveur connecté, pas au texte de la compétence.
  • 2La couverture des clients est large mais inégale : certains ID de clients demandent un rea-agents plus récent (droid, dsh, kimi, qoder, trae, workbuddy et zcode depuis 6.5.0 ; freebuff depuis 6.8.0), et `lm_studio` demande une version postérieure à 6.8.0.
  • 3Setup écrit dans votre configuration d'agents et vos répertoires de compétences. Il conserve des instantanés `.rea.backup` et refuse d'écraser des fichiers qu'il ne peut pas vérifier, mais il ne peut pas se coordonner avec un autre processus qui édite le même fichier — quittez le client d'abord, comme le demande la doc.
  • 4La configuration du moteur est le point qui fait mal. Hopper est commercial avec une démo limitée, l'installeur automatique ne couvre que macOS et Linux x86_64, et la doc renvoie les autres architectures vers Ghidra. Sans moteur, le `healthy` global de doctor peut passer à false ; la doc dit que c'est normal tant que le workflow choisi fonctionne, et cela ne bloque que le pseudocode natif.
  • 5Contexte et confidentialité : l'agent voit l'Evidence, donc votre fournisseur de modèle la voit aussi. L'analyse est locale, les résultats non — gardez les cibles sensibles sur un modèle local ou complètement hors de la boucle.

DeepSeek Harness et les paquets de compétences voisins

Le README de REA ne mentionne pas DeepSeek Harness, mais le paquet peut s'y enregistrer : `dsh` est l'un des ID de clients de setup, et le répertoire DSH liste à la fois le projet REA lui-même et des adaptateurs communautaires. zhaofeng130/dsh-rea est un adaptateur non officiel qui enregistre la compétence `reverse-engineer-anything` plus les outils `rea` et `rea_doctor`, et qui n'embarque explicitement pas REA. dhicoc/dsh-reverse-skill est encore autre chose : un portage du paquet reverse-skill (87 fichiers SKILL.md pour la rétro-ingénierie, les tests d'intrusion autorisés et le CTF) sans dépendance à REA. Ni l'un ni l'autre n'est affilié à morluto/rea — lisez-les avant d'installer.

FAQ REA

À lire ensuite