Aller au contenu
geekus
ActuAgents IA·4 min de lecture

REA : rétro-ingénierie avec ton agent de code

REA donne à ton agent de code de quoi comprendre comment un programme fonctionne. L'exemple : pourquoi 200 + 10% donne 220 dans Calculator. Se lance avec npx rea-agents@latest setup.

rea.tools/
Capture de la page de REA
Sommaire10 parties

REA est un outil de rétro-ingénierie qui donne à ton agent de code de quoi inspecter un programme et t’expliquer comment il fonctionne. Son exemple phare : pourquoi la calculatrice de Windows affiche 220 pour 200 + 10 %. L’installation tient en une commande, puis l’agent se charge de la lecture.

En bref

  • REA équipe ton agent de code pour inspecter un programme et expliquer ce qu’il fait.
  • Il s’installe avec npx rea-agents@latest setup, après validation d’un plan.
  • Deux exemples publiés : la touche % de Calculator et la vitesse du dinosaure de Chrome.
  • Trois familles de cibles : binaires natifs, JavaScript et Electron, activité du navigateur.

Ce que fait REA

REA vise un besoin précis : comprendre comment un logiciel fonctionne en examinant le programme lui-même. Le but, selon le site du projet, est de saisir une fonction assez bien pour pouvoir l’expliquer, la modifier ou la reconstruire.

Sans outil, il faut décoder des branchements, suivre les appels de fonctions et retrouver la règle à la main. Avec REA, tu poses une question en langage courant à ton agent de code. REA lui fournit la matière (instructions, code décompilé, appels), et l’agent explique quelle branche s’applique, ce qu’elle calcule et comment la refaire.

Installer REA avec npx

Le projet propose deux voies. Soit tu copies une consigne dans ton agent de code, qui installe REA, te montre le plan d’installation pour approbation, puis vérifie le résultat. Soit tu lances toi-même la commande dans un terminal.

Dans les deux cas, il faut approuver le plan d’installation, puis redémarrer l’agent.

npx rea-agents@latest setup

Pourquoi Calculator donne 220 pour 200 + 10 %

Premier exemple : l’agent reçoit la consigne « Use REA to inspect Windows Calculator. Why does 200 + 10% give 220? ». REA ouvre l’application, sélectionne sa bibliothèque installée et renvoie le code du gestionnaire de la touche %. La fonction teste l’opérateur et utilise la constante 100.

Le résultat : après un +, la touche % prend un pourcentage du premier nombre. 10 % de 200 font 20, et 200 + 20 donnent 220. Après un ×, la branche est différente : 10 % devient 0,1, donc 200 × 0,1 donne 20.

Le site précise que cette analyse a été faite avec REA 4.1.0 sur Windows Calculator 11.2508.4.0 en x64. Les noms lisibles du résumé viennent du code public de Microsoft, utilisé pour recouper la branche retrouvée.

La vitesse du dinosaure de Chrome retrouvée avec REA

Second exemple : le jeu du dinosaure, dans l’édition navigateur de wayou dérivée de Chromium. REA y accède par une connexion locale de débogage et renvoie le script réellement chargé, index.js, avec son code source et son empreinte. L’agent en tire la règle d’accélération.

La vitesse démarre à 6, augmente de 0,001 à chaque mise à jour sans collision, et s’arrête à 13. Lors d’un contrôle dans le navigateur, la vitesse valait 10,0 après 4 000 mises à jour et 13,0 après 10 000, arrondie à une décimale. L’agent a ensuite bâti un mini-jeu à vitesse réglable ; son dessin, ses sauts et ses collisions sont une petite implémentation pédagogique.

if (this.currentSpeed < this.config.MAX_SPEED) {
this.currentSpeed += this.config.ACCELERATION;
}

Quelles cibles REA peut analyser

Au-delà de ces exemples, le site range les analyses en trois familles, chacune avec un guide. Il évoque aussi des usages plus ambitieux, comme cloner le site rea.tools ou reconstruire un jeu à partir de son exécutable, avec une étude de cas sur DX-Ball.

  • Binaires natifs : fonctions, chaînes de texte, références et relations d’appel dans les exécutables et bibliothèques.
  • JavaScript et Electron : modules, routes, communications internes et dépendances natives, depuis un dossier d’application ou une archive ASAR.
  • Activité du navigateur et des processus : capture ciblée, puis comparaison des résultats d’une exécution à l’autre.

Premiers pas, prix et licence de REA

Pour une première enquête, le projet propose un exemple guidé : télécharger une application Notes, suivre son export CSV et vérifier l’effet d’une entrée modifiée. Pour les questions, il renvoie vers une FAQ, un Discord et les tickets GitHub.

Le site ne donne ni prix, ni licence, ni configuration minimale pour REA. Il ne précise pas non plus quels agents de code sont compatibles au-delà de l’installation proposée depuis l’agent.

Quelques repères

  • Rétro-ingénierie : Démarche qui consiste à étudier un logiciel déjà fabriqué pour comprendre son fonctionnement, sans disposer de ses plans ni de son code d’origine.
  • Assembleur : Représentation lisible des instructions les plus basiques qu’un processeur exécute. C’est ce que l’on obtient en examinant un programme déjà compilé.

Questions fréquentes

Qu’est-ce que REA pour la rétro-ingénierie ?

REA est un outil qui donne à un agent de code les moyens d’inspecter un programme et d’expliquer ce qu’il fait. Tu poses la question en langage courant, l’agent s’appuie sur ce que REA renvoie.

Comment installer REA ?

Avec la commande npx rea-agents@latest setup, ou en collant dans ton agent de code la consigne fournie par le site. Il faut ensuite approuver le plan d’installation et redémarrer l’agent.

REA peut-il analyser une application Electron ?

Oui, le site de REA mentionne un guide pour JavaScript et Electron. Il couvre les modules, les routes, les communications internes et les dépendances natives, depuis un dossier d’application ou une archive ASAR.

REA est-il gratuit ?

Le site de REA ne donne aucune information sur le prix ni sur la licence. Il faut les chercher auprès du projet.

À retenir

REA confie à un agent de code les étapes pénibles de la rétro-ingénierie : lire les instructions, suivre les appels et retrouver la règle. Ses deux exemples publiés, la touche % de Calculator et la vitesse du dinosaure de Chrome, montrent un résultat que le lecteur peut vérifier.

Sources

rétro-ingénierieagent de codeanalysenpxbinaires
Dans le même genre

Des fiches proches.

toute la famille
À lire aussi

Les dernières fiches.

tout l'annuaire

Le Carnet de Geekus · chaque vendredi

Les trouvailles de la semaine, dans ta boîte mail.

Un email, cinq minutes de lecture. En français, gratuit, sans publicité.

S'inscrire au Carnet →
  1. Le spécimen de la semaine, expliqué à fond
  2. L'actu IA en bref
  3. Les autres trouvailles et le mot de la semaine