REA : laissez des agents IA décortiquer les logiciels dont vous n’avez pas le code source

Le projet open source REA (Reverse Engineer Anything) connecte des outils d’analyse en rétro-ingénierie à des agents de programmation IA comme Claude Code, Codex et Cursor. Vous avez repéré une fonctionnalité intéressante dans l’application de quelqu’un d’autre ? Vous pouvez demander à un agent de décortiquer le programme, d’expliquer clairement comment cette fonctionnalité est implémentée, d’étayer ses explications avec des preuves, puis d’en réaliser une version similaire dans votre propre projet. L’analyse en rétro-ingénierie consiste à partir d’un programme compilé pour en déduire le fonctionnement, sans disposer de son code source.

REA est un service MCP. MCP est une interface standard qui permet aux agents IA d’appeler des outils externes. Une fois connecté, l’agent peut appeler directement les fonctions d’analyse de REA pendant une conversation. L’installation se fait en une seule ligne de commande : npx rea-agents setup. Le programme configure REA dans des agents tels que Claude Code, Codex, Cursor, Gemini CLI et Grok Build. Avant de modifier les paramètres, il en crée une sauvegarde et vous demande confirmation. Vous pouvez aussi exécuter les commandes directement dans le terminal si vous n’utilisez pas d’agent.

REA peut analyser de nombreux types de logiciels. Pour les programmes natifs (des logiciels compilés directement en code machine), il s’appuie sur des outils de désassemblage comme Hopper, Ghidra ou IDA pour convertir le code machine en assembleur et en pseudo-code proche du C. Les applications Electron (des logiciels de bureau conçus avec des technologies web, comme Notion) peuvent être directement examinées en extrayant les archives ASAR de leur paquet d’installation. Il est alors possible de retracer les modules et les communications entre les processus, sans outil supplémentaire. REA prend également en charge les programmes .NET, les fichiers APK Android, les micrologiciels, les sites web, les captures de trafic réseau, le bytecode des contrats Ethereum, ainsi que l’enregistrement du comportement des programmes à l’exécution sous Linux et macOS.

L’analyse s’effectue sur votre machine et REA n’envoie pas le programme étudié. En revanche, les résultats d’analyse sont transmis au fournisseur du modèle utilisé par l’agent ; le traitement des données dépend des politiques de chaque fournisseur.

Le projet présente trois exemples. Le premier porte sur DX-Ball, un jeu classique de casse-briques : en partant d’un appel qui joue un effet sonore, l’analyse remonte jusqu’à la fonction qui calcule la répartition du son entre les canaux gauche et droit selon la position de la balle. Le pseudo-code incomplet est reconstitué en C, et les résultats de 3 205 tests correspondent à ceux du jeu d’origine. Les 63 octets du programme compilé sont eux aussi identiques à l’original. Le deuxième exemple concerne la version de bureau de Notion : il retrace tout le parcours du copier-coller, de l’interface au script de préchargement, puis aux communications interprocessus et enfin au processus principal. Le troisième porte sur le jeu Touhou Gensokyo (TH04), conçu pour le vieil ordinateur japonais PC-98 : l’analyse reconstitue, à partir d’instructions 16 bits, l’algorithme qui calcule l’angle des anneaux de projectiles.

Pour les chercheurs en sécurité, les personnes qui recréent de vieux jeux ou celles qui préservent des logiciels, cette tâche nécessitait auparavant de lire les instructions une à une dans un outil de désassemblage et de suivre les appels couche après couche. Désormais, un agent peut faire ce travail préliminaire, que l’on peut ensuite vérifier à l’aide des preuves fournies. Les développeurs qui souhaitent étudier la façon dont un concurrent a conçu une fonctionnalité disposent eux aussi d’une nouvelle possibilité.

D’après le README, le projet a déjà recueilli 50 000 étoiles sur GitHub. Le paquet npm a été publié pour la première fois en juillet de cette année, et la dernière version, la 6.3.0, vient de sortir aujourd’hui.

Deux points à garder à l’esprit avant de l’utiliser. Le projet indique qu’il est destiné uniquement à la recherche légale en rétro-ingénierie ; il appartient à chaque utilisateur de s’assurer qu’il dispose des autorisations nécessaires et respecte la réglementation. La rétro-ingénierie de logiciels appartenant à des tiers peut enfreindre les conditions d’utilisation ou les lois sur le droit d’auteur. Le projet précise également qu’il n’a jamais émis ni soutenu de cryptomonnaie ; les jetons qui empruntent le nom de REA n’ont aucun lien avec lui.

https://github.com/morluto/rea