NapseflowNapseflow
Tech

« Découvrez comment fonctionne le logiciel » : massivement partagé, cet outil IA veut mettre la rétro-ingénierie à la portée de tous

Numerama · mis à jour il y a 5 j

Branché sur les assistants de code, l’outil open source REA permet de faire décortiquer un programme par une IA en lui posant simplement une question. Plébiscité en quelques jours, il soulève déjà des questions juridiques..

REA, outil open source

REA est un outil open source (son code est accessible et modifiable par tous) qui utilise l'intelligence artificielle pour faciliter la rétro-ingénierie de logiciels. La rétro-ingénierie consiste à analyser un programme déjà compilé (c'est-à-dire transformé en un format exécutable par un ordinateur) pour en comprendre le fonctionnement, sans disposer de son code source original. REA permet à un utilisateur de poser des questions en langage naturel (comme dans une conversation) à une IA, qui analyse le programme et fournit des réponses claires. L'outil s'intègre aux assistants de code existants, comme ceux utilisés par les développeurs, via une simple commande d'installation. En quelques jours, REA a suscité un vif intérêt sur la plateforme GitHub, atteignant près de 55 000 étoiles, un système de notation par les utilisateurs pour montrer leur approbation.

Fonctionnement de REA

REA fonctionne en deux étapes principales. D'abord, il extrait des données brutes du programme ciblé, comme les instructions machine (les commandes de base comprises par un processeur), le code décompilé (une version simplifiée du code original) ou les fonctions appelées par le logiciel. Ensuite, un agent de code (une IA spécialisée dans l'analyse de programmes) interprète ces données pour répondre à une question posée par l'utilisateur. Par exemple, les créateurs de REA ont demandé pourquoi le dinosaure d'un jeu caché dans Chrome accélère avec le temps. L'IA a identifié la règle de programmation responsable de cette accélération et a permis de recréer une version modifiable du jeu. Un autre exemple montre comment REA a expliqué pourquoi la calculatrice de Windows affiche 220 pour l'opération 200 + 10 %. L'outil a révélé que le signe % ne fonctionne pas de la même manière selon l'opération, et a reproduit ce comportement dans une nouvelle calculatrice. REA peut analyser des exécutables natifs (programmes compilés pour un système d'exploitation spécifique), des applications JavaScript ou Electron (des frameworks utilisés pour créer des applications de bureau avec des technologies web), ainsi que l'activité d'un navigateur.

Succès et limites

Le succès de REA a été rapide et massif. Selon les données de GitHub, le projet est passé d'environ 4 200 étoiles le 5 octobre à près de 55 000 étoiles au moment de la publication de l'article, ce qui reflète un engouement significatif dans les communautés techniques. Cependant, des réserves juridiques et pratiques émergent. Certains développeurs, comme ceux de StoryTold (une équipe travaillant sur des alternatives à la suite Adobe), estiment que l'utilisation de REA pour analyser des logiciels commerciaux pourrait entraîner des procès, car la décompilation est souvent interdite par les contrats de licence des éditeurs. Un autre internaute souligne que décompiler un logiciel commercial enfreint généralement les conditions d'utilisation, même avant toute publication. Malgré ces défis, les concepteurs de REA visent à démocratiser la rétro-ingénierie, une pratique autrefois réservée aux experts, en la rendant accessible via une interface simple et une IA.

Ce que ça pourrait changer

L'arrivée d'outils comme REA s'inscrit dans un contexte plus large marqué par l'essor des assistants de code basés sur l'IA, qui bouleversent les modèles économiques traditionnels des logiciels. Par exemple, des clones de *Photoshop* ou de la suite *Office* développés avec l'IA se multiplient, certains devenant des projets collaboratifs à part entière. Cette tendance répond à une volonté croissante des utilisateurs de recréer leurs propres outils pour réduire leur dépendance aux abonnements payants. La rétro-ingénierie joue un rôle clé dans ce mouvement, car elle permet de comprendre et de modifier des logiciels existants sans avoir accès à leur code source. Cependant, les défis juridiques liés à la décompilation restent un obstacle majeur, notamment pour les projets open source ou commerciaux qui souhaitent éviter des conflits légaux.

Sujets complémentaires

Ce contenu a été généré par intelligence artificielle à partir de l'article source. Il peut contenir des erreurs ou imprécisions.