
J’ai testé l’outil IA viral qui permet de COPIER n’importe quelle app
Audio Summary
AI Summary
Un nouveau dépôt, "reverse engineer anything" (REA), suscite beaucoup d'attention. La promesse est simple : il permet de décompiler une application pour en obtenir le code source, ce qui théoriquement permettrait de la reconstruire, comme Photoshop ou des jeux vidéo, sans aucune limite. Cependant, la réalité est souvent différente de la théorie. Nous allons explorer cet outil en direct pour voir si cela est vraiment possible et tenter de décompiler des applications. Cette démonstration vise à montrer que la frénésie autour de l'IA, affirmant qu'il n'y a plus de limites et que les développeurs sont "morts", doit être nuancée.
REA est présenté comme un "MCP" (Master Control Program) pour le *reverse engineering* à travers les binaires, les applications et les comportements d'exécution. Avant de plonger, il est essentiel de comprendre ce qu'est le *reverse engineering*. Lorsque vous utilisez une application native sur votre ordinateur (comme Photoshop ou Google Chrome), celle-ci est codée pour macOS ou Windows. Votre ordinateur lit des binaires, un langage machine composé de 0 et 1. La décompilation consiste à revenir du binaire au code source original, ce qui est normalement extrêmement difficile, voire impossible. Des ingénieurs créent le code source (par exemple en Swift ou Java), qui est ensuite compilé en binaire. Ce processus de compilation n'est pas magique; il implique plusieurs couches intermédiaires comme l'assembleur ou le *bytecode* pour Java. Le *reverse engineering* est la spécialité de personnes qui analysent le binaire pour en comprendre le code source, une pratique appelée familièrement "péter des binaires".
La promesse de REA est qu'avec un MCP connectable à n'importe quel agent, tel que Claude Code, il est possible de réaliser ce *reverse engineering*. Théoriquement, on pourrait décompiler n'importe quelle application sur son ordinateur, y compris celles payantes, et ainsi éviter les abonnements. Cependant, il y a un aspect souvent mal compris dans le *reverse engineering* et ces dépôts populaires.
Nous allons tenter de décompiler une application ensemble. L'application choisie initialement était Keystroke Pro, une application payante qui affiche les raccourcis clavier à l'écran. L'objectif était de créer une version personnelle pour ne plus payer l'abonnement. REA prétend pouvoir inspecter les binaires natifs, les applications JavaScript Electron, les applications .NET et même les sites web.
L'installation de REA implique l'utilisation d'un orchestrateur qui va contrôler d'autres applications. REA peut utiliser des outils existants de *reverse engineering* comme Heroper, Ghidra ou IDA. Ces outils existaient déjà, mais ils n'avaient pas la partie "intelligence" apportée par un agent comme Claude Code. Claude Code se connecterait à REA, qui utiliserait ensuite l'une de ces applications pour décompiler le binaire. Il est nécessaire d'installer l'une de ces applications; Ghidra, développé et maintenu par la NSA, est gratuit et sera utilisé.
Après l'installation de Ghidra via Claude Code, l'idée est de demander à l'agent de "comprendre comment la recherche fonctionne dans l'application Note et de montrer les preuves pour construire une fonctionnalité similaire dans mon projet". Il est important de noter que l'agent ne construit pas toute l'application, mais un élément de celle-ci. Ce processus implique un agent appelant le serveur MCP de REA, qui utilise ensuite Ghidra (ou d'autres outils) pour les binaires natifs, mais aussi pour les applications Android, les sites web (en prenant des captures ou en contrôlant Chrome) et même des applications qui sont en réalité des interfaces web encapsulées, comme Notion. Les preuves sont ensuite renvoyées à Claude Code, créant une boucle d'apprentissage. Ghidra existe depuis sept ans, donc le *reverse engineering* n'est pas nouveau; REA agit comme un orchestrateur qui décuple la puissance de ces outils grâce à l'IA.
L'engouement pour REA vient de la promesse de pouvoir recréer n'importe quelle application. Des projets comme Artcraft, une version *open source* de Photoshop faite en Rust, montrent que la refonte de suites logicielles complexes est possible. Bien que ces versions puissent manquer de certaines fonctionnalités, elles sont souvent suffisantes pour la plupart des utilisateurs. L'agent IA transforme un châssis existant (les outils de *reverse engineering*) avec un moteur beaucoup plus puissant. REA peut analyser des bases de données SQLite, des sites web entiers, des applications Android, des périphériques Android (permettant de voir ce qui se passe à l'intérieur), et des *firmwares*.
Suite à l'installation de Ghidra, nous avons demandé à Claude Code de décompiler et reconstruire Keystroke Pro. Cependant, un point juridique important a été soulevé : la licence de Keystroke Pro, une application commerciale, interdit la décompilation, sauf pour des raisons de compatibilité logicielle, pas pour créer un clone. Observer et tester l'application pour comprendre son fonctionnement est légal, mais la reconstruction à partir du code désassemblé est interdite. Pour éviter tout problème, nous avons décidé de travailler sur l'application "Mouse", une application gratuite qui affiche un anneau autour du curseur et permet des annotations.
En parallèle, une autre instance de Claude Code a été lancée pour reconstruire l'application Mouse sans utiliser REA, afin de comparer les résultats. L'objectif est une réimplémentation propre, avec un fonctionnement similaire mais un code différent. Pour un usage personnel, cela ne pose aucun problème juridique. L'agent a proposé un plan : une application de menu, un anneau autour du curseur, un *spotlight* avec maintien d'une touche. Le projet a été nommé "Jerry".
L'analyse du binaire de Mouse par REA a commencé, montrant des séquences hexadécimales représentant le binaire. Après quelques minutes, l'agent a terminé la reconstruction de "Jerry". L'application a été lancée et testée. Les fonctionnalités sont impressionnantes : un surligneur Jerry, des effets de curseur (rayon, néon, pulsation, traînée), des effets visuels de clic, des sons de clic, un *spotlight* activable par raccourci clavier, et des annotations. En dix minutes, l'application a été reconstruite avec toutes les fonctionnalités de Mouse, et même mieux, car elle est entièrement configurable. L'accès au code source permet d'ajouter de nouvelles fonctionnalités.
L'agent a suggéré des améliorations pour Jerry, classées par effort de développement : affichage des touches tapées, couleurs selon les boutons, masquage de l'anneau en cas d'inactivité, profils de présentation, enregistrement, loupe zoom, effacement des annotations d'un geste, formes intelligentes, fond blanc/noir pour les schémas, recadrage automatique, mode "rien ne bouge", et même une application iPhone comme télécommande. L'analyse du binaire a révélé des outils professionnels prévus mais absents dans la version gratuite de Mouse, ainsi que des détails techniques sur les préférences du Mac, le temps d'usage de l'application, et les configurations de raccourcis. Il a même identifié des fonctionnalités potentielles comme une bulle webcam ronde déplaçable, des sous-titres en direct et un enregistreur d'écran, ce qui permettrait de créer son propre équivalent de Tella.
Nous avons demandé à l'agent d'implémenter l'affichage des touches. Après compilation, cette fonctionnalité était opérationnelle et configurable (position, taille, durée). Cela montre qu'il est possible de personnaliser l'application à l'infini.
En parallèle, l'autre instance de Claude Code, sans REA, a également tenté de reconstruire Mouse. Elle a réussi en 8 minutes, mais l'application résultante présentait des bugs et des problèmes de fonctionnement, notamment dans les réglages. Bien qu'elle ait réussi à implémenter l'anneau, la traînée, le projecteur et le mode annotation, elle n'avait pas accès au code source du binaire et a dû "deviner" le fonctionnement interne de l'application, ce qui a conduit à des imperfections.
Le verdict est que REA n'est pas absolument nécessaire pour reconstruire une application simple comme Mouse. Les deux approches ont fonctionné, mais l'une (avec REA) a donné un résultat plus abouti et fonctionnel dès le départ, grâce à l'accès et à la compréhension du binaire. L'autre a demandé plus de débogage.
Cependant, il est crucial de comprendre les limites de cette approche. Si REA est efficace pour les utilitaires simples fonctionnant localement, la situation se complique énormément pour les applications nécessitant une connexion internet. La plupart des applications modernes dépendent d'appels API à un *backend*, une base de données ou des serveurs externes. Le code qui tourne sur ces serveurs n'est pas accessible localement et ne peut donc pas être décompilé. C'est le cas de nombreuses applications SaaS (Software as a Service) comme Whisper Flow ou Granola, qui traitent des données sur des serveurs distants. Dans ces cas, le *reverse engineering* ne permet pas de recréer l'intégralité de l'application.
Le modèle mental à retenir est le suivant :
1. Pour un utilitaire simple et local, REA peut vous aider à obtenir une première version fonctionnelle rapidement en aidant l'IA à comprendre l'application cible. Il est possible d'y arriver sans