YouMind
Se connecter

Comment transformer Opus 5.5 en machine d'ingénierie inverse en 8 étapes (cours complet)

@hanakoxbt
ANGLAIS13 oct. 2026
194K
139
14
15
332

TL;DR

Ce guide détaille un flux de travail en 8 étapes utilisant l'outil REA et Opus 5.5 pour l'ingénierie inverse de logiciels. Il couvre le routage des cibles, l'installation, la reconnaissance, la décompilation, la gestion de l'obfuscation, l'analyse par essaims, la reconstruction clean-room et la vérification.

Le 8 octobre 2026, un dépôt dont personne n'avait entendu parler trois mois plus tôt s'est hissé à la première place des tendances GitHub.

Il s'appelle REA, pour Reverse Engineer Anything (rétro-ingénierie de tout), et il offre à votre agent un véritable désassembleur.

**Ajoutez ceci à vos favoris — si vous voulez la version longue, le cours complet en 20 leçons sur ce sujet est disponible ici :**

reacourse.xyz

Il vous fait passer d'un terminal vide à une reconstruction qui passe ses propres tests de parité, avec chaque commande et chaque prompt écrits noir sur blanc. COMMENCEZ ICI.

La réaction a été la même partout cette semaine-là.

Matthew Berman l'a résumé en trois mots, et 3,6 millions de personnes l'ont vu.

https://x.com/MatthewBerman/status/2108245653843509415

REA est un serveur MCP open source accompagné d'une CLI qui se branche sur Claude Code, Codex, Cursor et Gemini CLI.

Sous licence MIT, développé par morluto, première version publiée le 12 juillet 2026, et trois mois plus tard, plus de 100 000 étoiles sur GitHub.

Tout s'exécute localement, et chaque conclusion est étiquetée comme observation, déduction ou inconnue, accompagnée de l'adresse ou du site d'appel correspondant.

Voici le chemin complet, en huit étapes, pour passer d'un binaire scellé à une reconstruction qui vous appartient.

Hanako - inline image

Avant les étapes : ce que les gens ont déjà livré avec ça

L'outil n'est pas l'histoire ; ce qui a été livré en quatre semaines l'est.

ArtCraft a recréé sept applications Adobe sous forme d'alternatives gratuites et open source, puis s'est attaqué à Office avec WordCraft, GridCraft et DeckCraft.

Douze applications aujourd'hui, toutes écrites de zéro en Rust, natives sur trois plateformes, et toutes sauf une fonctionnent aussi dans un onglet de navigateur grâce à WebAssembly.

Côté jeux, les preuves sont encore plus précises :

  • Super Mario Sunshine a bénéficié d'un portage natif sur PC : environ 365 heures-agent et 17,3 milliards de tokens, en utilisant Claude et Codex ensemble
  • Un jeu Touhou reconstruit avec des agents sur le blog officiel de REA : 697 fonctions, 696 correspondances exactes, jouable en environ 12 jours
  • L'authentificateur Aegis (3 077 classes) démonté et reconstruit, avec les 133 cas de test validés
  • La fonction de panoramique sonore de DX-Ball reconstruite en C, passant 3 205 cas de test x86 originaux et reproduisant les 63 octets compilés

Remarquez bien ce que cette liste n'est pas.

Personne n'a cracké de vérification de licence, personne n'a publié le code source d'un tiers.

Chaque élément est un comportement récupéré, documenté et reconstruit dans un nouveau code.

01. Analysez la cible avant de quoi que ce soit

Si cet outil s'est répandu si vite, ce n'est pas parce qu'il lit bien une seule chose. Il lit presque tout, et il fournit les preuves de chaque affirmation.

https://x.com/RoundtableSpace/status/2109165852578992582

Cette liste est aussi la première décision que vous prenez. Le moyen le plus courant de perdre un après-midi est de sortir un désassembleur alors que la cible est une application Electron dont le JavaScript est juste là, sous vos yeux.

Pointez REA vers Electron et vous obtenez les modules, les imports et les limites IPC en quelques secondes sans aucun moteur, tandis qu'un Mach-O ou ELF natif ouvre une base de données Hopper, ce qui est le chemin le plus profond, mais aussi le plus lent.

Savoir dans quel cas vous vous trouvez permet d'économiser des heures : faites-en donc la mission de votre premier prompt.

markdown
1Je veux comprendre comment fonctionne [FONCTIONNALITÉ] dans [APPLICATION], située à [CHEMIN ABSOLU].
2 Dis-moi d'abord de quel type de cible il s'agit (natif, Electron/JS, .NET, Go, APK, WASM)
3 et choisis le bon outil REA pour l'ouvrir. Ne commence pas encore l'analyse approfondie.
4 Ensuite, cartographie-la en un paragraphe : avec quoi elle est construite, sa taille, où tu chercherais
5 en premier pour trouver [FONCTIONNALITÉ]. Sépare bien les observations, les déductions et les inconnues.
Hanako - inline image

Le détail que presque personne ne mentionne : beaucoup de jeux Unity livrent leur logique en .NET, et REA lit le .NET sans moteur supplémentaire.

C'est exactement pour cela qu'un jeu Steam acheté passe du binaire au C# modifiable en moins d'une demi-heure.

Et chaque application Electron sur votre machine est lisible dès maintenant, sans même la lancer :

bash
1# où se trouve le JavaScript
2macOS: /Applications/<App>.app/Contents/Resources/app.asar
3Windows: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar
4 npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

02. Installez-le en cinq minutes, puis ajoutez un moteur

Ce qui fait fonctionner tout ça, ce n'est pas un prompt astucieux. C'est un véritable moteur de désassemblage connecté à l'agent, ce qui est exactement ainsi qu'un développeur l'a décrit.

https://x.com/techNmak/status/2108431092462338178

L'installation enregistre le serveur MCP auprès de votre agent et installe la compétence de workflow correspondante.

Elle affiche chaque modification avant d'écrire quoi que ce soit et sauvegarde ce qu'elle touche.

node -v # Node 22.19+, 24.11+ ou 26+. Les versions 23 et 25 ne sont pas prises en charge

bash
1npx rea-agents@latest setup # enregistre le serveur MCP, demande avant d'écrire
2npm install --global rea-agents # la commande courte rea, pour toujours
3rea --help
4# redémarrez l'agent, puis vérifiez. doctor ne fait que vérifier, il ne modifie jamais rien
5npx -y rea-agents@latest doctor --client claude_code --json

Le redémarrage est plus important qu'il n'y paraît : une session de terminal doit être relancée proprement, et les applications de bureau nécessitent une fermeture complète, car fermer la fenêtre ne suffit pas.

Ensuite, n'ajoutez un moteur que pour ce que vous voulez réellement lire :

Un fichier mérite d'être rédigé avant votre première vraie cible : les règles de la maison dans claude-md.

N'analysez que ce qui vous appartient, étiquetez chaque affirmation comme observation, déduction ou inconnue, citez l'adresse correspondante, et ne considérez jamais un comportement récupéré comme terminé sans un test réussi.

bash
1# programmes et jeux natifs : Ghidra 12.1.x et JDK 21 ou plus récent
2 export GHIDRA_INSTALL_DIR=/chemin/absolu/vers/ghidra_12.1.4_PUBLIC
3 export JAVA_HOME=/chemin/absolu/vers/jdk-21
4 npx -y rea-agents@latest doctor --provider ghidra --json
5
6 # applications Android : JDK 17+ et jadx-headless-mcp 0.7.1
7 export REA_JADX_MCP_JAR=/chemin/absolu/jadx-headless-mcp-0.7.1-all.jar
8 rea inspect-android-package /chemin/App.apk
9
10 # bytecode de smart contracts, Linux x64 pour l'instant
11 rea inspect-evm-interface ./runtime.hex hex --json

03. Reconnaissance : la carte avant le code

N'ouvrez pas encore la moindre fonction.

Une seule commande vous indique sur quelle machine le binaire s'exécute, combien de fonctions il contient et tous les textes lisibles qui y sont enfouis.

Ce texte est l'indice le plus rapide de votre journée : les endpoints, les chaînes d'erreur et les noms de fonctionnalités décrivent l'application avant même que vous n'en lisiez la logique.

json
1rea.open_binary { path: "/Applications/Cible.app/Contents/MacOS/Cible" }
2rea.binary_overview {}
3 arch: arm64
4 functions: 1 284 identifiées
5 entry: _main @ 0x1000051c0
6
7rea.search { query: "http" }
8 0x10004a2c0 "https://api.cible.app/v3/sync"
9 0x10004a300 "Authorization: Bearer "
10
11rea.xrefs { address: "0x100012ab0" }
12 147 références -> chargeur de configuration principal, appelé partout
Hanako - inline image

REA compte combien de fois chaque fonction est appelée, et ce nombre correspond aux références croisées.

Une fonction appelée 147 fois constitue l'architecture de l'application ; une fonction appelée deux fois est une routine utilitaire qui peut attendre.

Triez selon ce nombre et descendez dans la liste, jamais dans l'ordre des fichiers, car c'est en suivant l'ordre des fichiers qu'on perd un week-end entier dans un binaire qui ne contenait que quatre fonctions intéressantes.

04. Décompilez une fonction, puis demandez à Opus de tout nommer dedans

Un décompilateur retransforme les instructions machine brutes en quelque chose qui ressemble à du C.

Le résultat est brut : des noms comme var_28, des conversions de type partout, des branchements emmêlés, et ce côté brut convient très bien, car la lisibilité est tout ce dont le modèle a besoin.

bash
1# une fonction par adresse, au format JSON que vous pouvez sauvegarder et réutiliser
2rea decompile /chemin/vers/Cible 0x100012ab0 --provider hopper --json > fn_config.json
3
4# ou trouvez-la par son nom et suivez ses références
5rea function /chemin/vers/Cible parseConfig --provider hopper --json
6rea xrefs /chemin/vers/Cible 0x100012ab0 --provider hopper --json

Transmettez ensuite cette sortie à Opus 5.5 et faites-lui faire ce que le désassembleur ne peut pas faire :

markdown
1Voici le pseudocode décompilé d'une fonction ayant 147 références croisées.
2
31. Renomme chaque variable en te basant sur son utilisation, et explique son objectif en une phrase.
42. Liste les structures de données qu'elle lit et écrit, et nomme le schéma qu'elle suit.
53. Réécris-la sous forme de code propre et idiomatique dans le langage suggéré par les conventions d'appel.
64. Signale toute gestion d'erreur, validation d'entrée ou vérification de sécurité manquante.
7
8Réfléchis avec un effort xhigh avant de répondre. Indique tout ce dont tu n'es pas sûr.
Hanako - inline image

Opus 5.5 propose cinq niveaux d'effort : low, medium, high, xhigh et max.

Medium inspecte et navigue, high annote les fonctions ordinaires, max est réservé au code obfusqué et aux calculs de pointeurs complexes.

L'effort est le réglage de qualité le plus déterminant de ce pipeline, et la plupart des gens le laissent par défaut avant de blâmer le modèle.

La décompilation vous dit ce que fait le code, le modèle vous dit pourquoi, et vous donne les noms pour le reconstruire.

05. Obfuscation : cassez ce qui vaut la peine d'être cassé, budgétez le reste

Certaines applications sont conçues pour résister précisément à ce que vous faites : logique mélangée, chaînes chiffrées, faux branchements ajoutés uniquement pour gaspiller votre attention.

C'est le seul endroit où même le meilleur modèle peine, et il existe des chiffres précis à ce sujet.

Elastic Security Labs a confronté Claude Opus au brouilleur Tigress sur 20 tâches, et deux leçons en ressortent directement.

Une tentative échouée coûte environ deux fois plus cher qu'une réussite, car le modèle continue d'insister avant d'abandonner, et l'obfuscation multicouche a donné un taux de réussite de zéro : s'acharner dessus est donc le moyen le plus coûteux de ne rien apprendre.

Hanako - inline image

La règle pratique consiste à fixer un budget par fonction, et non par session.

Éliminez d'abord le superflu, car un outil gratuit appelé Caveman supprime environ 75 % du bruit décompilé, permettant au modèle de concentrer son attention sur la vraie logique.

markdown
1Cette fonction semble obfusquée. Travaille avec un effort max.
2
31. Identifie les techniques présentes (aplatissement du flux de contrôle, prédicats opaques,
4 code mort, chiffrement de chaînes, découpage de fonctions) et pointe chacune d'elles ici.
52. Résous-les : supprime les branchements morts, évalue les prédicats opaques, désaplatisse le
6 dispatch, déchiffre les chaînes inline si la clé est récupérable. Montre ce qu'il reste.
73. Note ta confiance de 1 à 10. En dessous de 6, nomme les parties incertaines et le contexte qui
8 permettrait de les résoudre. Ne devine pas en silence.

06. L'essaim : un contrôleur, plusieurs travailleurs

Une seule conversation ne peut pas lire correctement 500 fonctions.

Elle oublie ce qu'elle a vu quarante fonctions plus tôt, nomme la même structure de trois façons différentes et commence discrètement à se contredire.

La solution n'est pas d'ajouter du contexte, mais de séparer les rôles : un contrôleur qui distribue le travail, et des travailleurs qui prennent chacun une fonction et s'arrêtent.

Hanako - inline image
markdown
1Tu es un contrôleur de rétro-ingénierie. La carte des fonctions se trouve dans functions.json
2(adresse, nom, taille, xref_count).
3
41. Regroupe les fonctions par proximité dans le graphe d'appels ; ordonne les groupes par nombre de références croisées.
52. Attribue chaque groupe à un travailleur. N'analyse jamais une fonction toi-même.
63. Injecte les structures déjà résolues dans chaque brief pour que les noms restent cohérents.
74. Une confiance inférieure à 6 déclenche une seconde passe avec le contexte des voisins résolus.
85. Suis la dépense cumulée de tokens et signale-la après chaque groupe.
9
10Tu es un travailleur. Tu reçois une fonction décompilée et les structures résolues jusqu'à présent.
11Retourne exactement : adresse, objectif, confiance (1-10), structs_used, structs_new,
12clean_source, flags. Réutilise les noms de structures existants, n'invente jamais un second nom pour
13une structure que le contrôleur t'a déjà donnée. Une seule fonction. Arrête-toi quand c'est fini.

REA intègre également des workflows guidés directement dans le serveur MCP, que la plupart des gens n'ouvrent jamais :

  • - investigate_feature - suivre une fonctionnalité de sa découverte jusqu'aux fonctions exactes
  • - compare_application_versions - comparer deux versions et voir ce qui a réellement changé
  • - verify_reconstruction - vérifier votre reconstruction par rapport aux preuves sauvegardées
  • - audit_residual_unknowns - lister ce qui n'est toujours pas prouvé

07. Salle blanche : le mur entre deux contextes est le produit

Une reconstruction en salle blanche signifie que vous copiez ce que fait l'application, et jamais le code qu'elle contient.

Faites-le bien et ce que vous livrez vous appartient entièrement ; faites-le mal et vous transporterez le droit d'auteur de quelqu'un d'autre dans votre propre dépôt.

C'est une méthode vieille de 40 ans, pas une invention de 2026.

Au début des années 80, Compaq a recréé le BIOS d'IBM de cette manière pour environ 1 million de dollars, ce qui est la seule raison pour laquelle des PC d'autres marques existent.

En 1992, le tribunal dans l'affaire Sega contre Accolade a déclaré que démonter du code pouvait relever de l'usage loyal lorsque c'était le seul moyen de comprendre son fonctionnement, et en 2000, Sony a perdu Sony contre Connectix 3-0 parce que l'émulateur final ne contenait aucun code de Sony.

L'autre côté de la ligne est tout aussi clair : en 2011, George Hotz a conclu un accord avec Sony et a accepté d'arrêter après la publication de la clé root de la PS3.

Hanako - inline image

Quatre règles vous maintiennent du bon côté, et l'équipe ArtCraft vérifie automatiquement ces quatre points à chaque compilation :

  • - Observer, ne jamais copier. Exécutez la cible en boîte noire, capturez uniquement sa propre fenêtre, ne collez jamais son code dans votre projet
  • - Des spécifications, pas des sources. Les formats de fichiers proviennent de standards publics (OOXML est ECMA-376 / ISO 29500, plus les spécifications publiées RTF et ODF), jamais de la lecture de l'analyseur syntaxique d'un concurrent
  • - Ressources originales uniquement. Chaque icône, police, modèle et son est dessiné par code, dans le domaine public ou sous licence ouverte, avec une ligne dans un fichier d'attribution
  • - Séparer les deux tâches. Un agent récupère le comportement et rédige la spécification, un autre contexte implémente à partir de cette seule spécification

Cette dernière règle est celle que les gens sautent, et c'est pourtant la véritable frontière.

Votre agent d'investigation est contaminé par définition, puisqu'il a lu la décompilation, et votre agent de construction ne doit pas l'être.

markdown
1À partir de l'analyse terminée, rédige une spécification en salle blanche pour une réimplémentation.
2
3Décris UNIQUEMENT LE COMPORTEMENT : chaque interface publique, le modèle de données, chaque fonctionnalité
4visible par l'utilisateur sous forme d'exigence testable, les formats de fichiers lus et écrits, la gestion des erreurs.
5
6N'inclus PAS d'adresses, de décalages, de noms de variables décompilées, d'assembleur, ni quoi que ce soit
7copié de l'original. Un développeur n'ayant jamais vu le binaire doit pouvoir
8implémenter une version compatible à partir de ce seul document.
9
10Sections : Architecture, Modèle de données, API publique, Formats de fichiers, Cas de test.

Travailler à partir d'une description n'est pas seulement une couverture juridique.

Cela vous permet de faire les bons choix pour votre propre langage au lieu d'hériter de décisions prises il y a vingt ans, ce qui explique pourquoi WordCraft est plus rapide que Word à certains endroits.

08. Vérifiez la parité, puis livrez via MCP

Vous n'avez jamais eu le code source original, vous ne pouvez donc pas comparer ligne par ligne.

Vous comparez les comportements : mêmes entrées dans les deux versions, mêmes sorties en retour.

markdown
1Construis un harnais de test comportemental comparant le binaire original et ma reconstruction.
2
3Génère 50 entrées : 30 normales, 10 extrêmes (vide, taille max, unicode), 10 erronées
4(malformées, corrompues). Passe-les toutes dans les deux versions, compare octet par octet si possible
5et sémantiquement sinon. Signale le taux de correspondance, les divergences et une gravité pour chacune
6(cosmétique / comportementale / critique). Sauvegarde dans report.md.

« Je pense que ça correspond » n'est pas une preuve, un taux de correspondance en est une, et ce rapport est l'élément le plus convaincant que vous puissiez placer en haut d'un article de lancement.

Livrez ensuite la reconstruction comme l'ont fait REA et les applications Craft, sous forme de serveur MCP, afin que l'agent de la prochaine personne puisse piloter votre outil comme vous avez piloté REA.

Donnez à chaque fonction un nom clair et une installation en une ligne, et chaque action devient une commande nommée qu'un clic, un raccourci et un agent déclenchent de manière identique.

bash
1claude mcp add wordcraft -- wordcraft-cli mcp
2
3> Ouvre report.docx, mets tous les titres en gras 14pt, exporte en PDF
4 ok select.all-headings -> 12 sélectionnés
5 ok format.font-size 14 . format.bold
6 ok export report.pdf (texte sélectionnable, signets conservés)

Les limites, et les cinq erreurs qui gâchent un week-end

REA ne peut pas toucher au serveur, car il lit ce qui se trouve sur votre machine, et le code exécuté sur les serveurs d'une entreprise ne vous a jamais été livré.

Le code décompilé est une reconstruction, pas le code source original, ce qui est toute la raison d'être de l'étape 08.

Les binaires C++ dépouillés (stripped) restent bien plus difficiles à traiter que les jeux Unity en .NET, et les moteurs commerciaux nécessitent toujours de vraies licences.

  • - Ouvrir un désassembleur sur une application Electron alors que le JavaScript est juste là
  • - Dumper tout le binaire avant d'avoir lu un résumé, ce qui noie la logique et fait exploser la facture
  • - Lire les fonctions dans l'ordre des fichiers plutôt que par nombre de références croisées
  • - Laisser le modèle copier du code dans votre reconstruction, ce qui détruit la salle blanche en un seul collage
  • - Livrer sans rapport de parité

Pour être honnête sur le plan juridique, puisque la moitié de X a passé une semaine à hurler au piratage : lire une application sur votre propre ordinateur, c'est apprendre ; reconstruire une fonctionnalité à partir de son comportement, c'est ainsi que l'industrie fonctionne depuis les années 80 ; et copier du code ou cracker des fonctionnalités payantes, c'est ce qui vous expose à des poursuites.

Étudiez l'original, livrez le vôtre.

Chacune de ces huit étapes fait l'objet d'une leçon détaillée sur

reacourse.xyz , avec les prompts exacts, les modes d'échec et les moments où cette méthode atteint ses limites.

Autrefois, « code source fermé » signifiait que vous ne sauriez jamais.

Aujourd'hui, cela signifie « montrez-moi les preuves ».

La plupart des gens continueront à payer un abonnement mensuel pour une fonctionnalité qu'ils pourraient comprendre en un après-midi et reconstruire en un week-end.

Ceux qui apprennent à lire les logiciels construiront tout ce qu'ils veulent.

Suivez-moi et abonnez-vous à ma chaîne Telegram :

https://t.me/+75nMf005jRpjMDU1

Enregistrer en un clic

Lire les articles viraux en profondeur avec l’IA de YouMind

Enregistrez la source, posez des questions ciblées, résumez l’argument et transformez un article viral en notes réutilisables dans un seul espace de travail IA.

Découvrir YouMind
Pour les créateurs

Transformez votre Markdown en un article 𝕏 impeccable

Quand vous publiez vos propres textes longs, la mise en forme 𝕏 des images, tableaux et blocs de code est pénible. YouMind transforme un brouillon Markdown complet en un article 𝕏 impeccable, prêt à publier.

Essayer Markdown vers 𝕏

D'autres patterns à décoder

Articles viraux récents

Explorer plus d'articles viraux