REA : laissez des agents IA rétroconcevoir des 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 repérez une fonctionnalité intéressante dans l’application de quelqu’un d’autre ? Vous pouvez demander à un agent de décortiquer le programme, d’expliquer comment elle est implémentée et d’étayer ses conclusions, puis de créer une fonctionnalité similaire dans votre propre projet. La rétro-ingénierie consiste à partir d’un programme compilé, sans en avoir le code source, pour en déduire son fonctionnement.
REA est un service MCP. MCP est une interface standard qui permet aux agents IA d’utiliser des outils externes. Une fois connecté, l’agent peut appeler directement les fonctionnalités d’analyse de REA au fil de la conversation. L’installation se fait en une seule commande : npx rea-agents setup. REA s’enregistre alors auprès d’agents comme Claude Code, Codex, Cursor, Gemini CLI et Grok Build, en sauvegardant la configuration avant toute modification et en vous demandant confirmation. Si vous n’utilisez pas d’agent, vous pouvez aussi lancer les commandes directement dans le terminal.
Les éléments analysables sont nombreux. Pour les programmes natifs (des logiciels compilés directement en code machine), il faut utiliser un outil de désassemblage comme Hopper, Ghidra ou IDA, qui traduit le code machine en assembleur et en pseudocode proche du C. Les applications Electron (des logiciels de bureau créés avec des technologies web, comme Notion) peuvent être décortiquées directement en extrayant les archives ASAR de leur paquet d’installation. Il est alors possible de comprendre l’organisation des modules et la communication entre les processus, sans outil supplémentaire. REA prend également en charge les programmes .NET, les 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 se déroule sur votre machine et REA ne téléverse pas le programme ciblé. Toutefois, les résultats d’analyse sont transmis au fournisseur du modèle utilisé par l’agent ; le traitement des données dépend donc des politiques de chaque fournisseur.
Le projet présente trois exemples. Le premier porte sur le jeu classique de casse-briques DX-Ball : à partir 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 en fonction de la position de la balle. Le pseudocode incomplet est reconstitué en C, et les résultats de 3 205 tests correspondent à ceux du jeu original. Les 63 octets du programme compilé sont eux aussi exactement 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 à la communication interprocessus et au processus principal. Le troisième porte sur le jeu Touhou Fuumaroku (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 œuvrent à la préservation des logiciels, c’est une nouvelle approche : au lieu de lire eux-mêmes chaque ligne de code désassemblé et de suivre les appels un à un, ils peuvent demander à un agent de faire le premier travail, puis vérifier les éléments de preuve qu’il fournit. Les développeurs qui souhaitent étudier la façon dont un concurrent a conçu une fonctionnalité disposent eux aussi d’une nouvelle piste.
D’après le README, le projet compte déjà 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 que son usage est réservé à la recherche légitime en rétro-ingénierie ; il appartient à chaque utilisateur de s’assurer qu’il dispose des autorisations nécessaires et respecte la réglementation. Rétroconcevoir le logiciel d’autrui 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 cautionné de cryptomonnaie ; les jetons qui reprennent le nom de REA n’ont aucun lien avec lui.
https://github.com/morluto/rea
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 repérez une fonctionnalité intéressante dans l’application de quelqu’un d’autre ? Vous pouvez demander à un agent de décortiquer le programme, d’expliquer comment elle est implémentée et d’étayer ses conclusions, puis de créer une fonctionnalité similaire dans votre propre projet. La rétro-ingénierie consiste à partir d’un programme compilé, sans en avoir le code source, pour en déduire son fonctionnement.
REA est un service MCP. MCP est une interface standard qui permet aux agents IA d’utiliser des outils externes. Une fois connecté, l’agent peut appeler directement les fonctionnalités d’analyse de REA au fil de la conversation. L’installation se fait en une seule commande : npx rea-agents setup. REA s’enregistre alors auprès d’agents comme Claude Code, Codex, Cursor, Gemini CLI et Grok Build, en sauvegardant la configuration avant toute modification et en vous demandant confirmation. Si vous n’utilisez pas d’agent, vous pouvez aussi lancer les commandes directement dans le terminal.
Les éléments analysables sont nombreux. Pour les programmes natifs (des logiciels compilés directement en code machine), il faut utiliser un outil de désassemblage comme Hopper, Ghidra ou IDA, qui traduit le code machine en assembleur et en pseudocode proche du C. Les applications Electron (des logiciels de bureau créés avec des technologies web, comme Notion) peuvent être décortiquées directement en extrayant les archives ASAR de leur paquet d’installation. Il est alors possible de comprendre l’organisation des modules et la communication entre les processus, sans outil supplémentaire. REA prend également en charge les programmes .NET, les 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 se déroule sur votre machine et REA ne téléverse pas le programme ciblé. Toutefois, les résultats d’analyse sont transmis au fournisseur du modèle utilisé par l’agent ; le traitement des données dépend donc des politiques de chaque fournisseur.
Le projet présente trois exemples. Le premier porte sur le jeu classique de casse-briques DX-Ball : à partir 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 en fonction de la position de la balle. Le pseudocode incomplet est reconstitué en C, et les résultats de 3 205 tests correspondent à ceux du jeu original. Les 63 octets du programme compilé sont eux aussi exactement 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 à la communication interprocessus et au processus principal. Le troisième porte sur le jeu Touhou Fuumaroku (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 œuvrent à la préservation des logiciels, c’est une nouvelle approche : au lieu de lire eux-mêmes chaque ligne de code désassemblé et de suivre les appels un à un, ils peuvent demander à un agent de faire le premier travail, puis vérifier les éléments de preuve qu’il fournit. Les développeurs qui souhaitent étudier la façon dont un concurrent a conçu une fonctionnalité disposent eux aussi d’une nouvelle piste.
D’après le README, le projet compte déjà 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 que son usage est réservé à la recherche légitime en rétro-ingénierie ; il appartient à chaque utilisateur de s’assurer qu’il dispose des autorisations nécessaires et respecte la réglementation. Rétroconcevoir le logiciel d’autrui 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 cautionné de cryptomonnaie ; les jetons qui reprennent le nom de REA n’ont aucun lien avec lui.
https://github.com/morluto/rea