IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Quelqu'un a pris un programme Visual Basic 4 vieux de 27 ans écrit dans un fichier EXE de 1997, l'a donné à l'IA Claude 3.7 d'Anthropic, et l'a regardé réécrire le programme en Python

Le , par Jade Emy

123PARTAGES

8  1 
Quelqu'un a pris un programme Visual Basic 4 vieux de 27 ans écrit dans un fichier EXE de 1997, l'a donné à l'IA Claude 3.7 d'Anthropic, et l'a regardé réécrire le programme en Python.

Un programme Visual Basic 4 vieux de 27 ans écrit dans un fichier EXE de 1997 a été réécrit en programme en Python à l'aide de l'IA Claude 3.7 d'Anthropic. Selon l'auteur, le code a fonctionné du premier coup et l'ensemble du processus a pris moins de cinq minutes. L'auteur a déclaré : "Il ne s'agissait pas d'un simple tour de passe-passe, mais d'une solution pratique qui m'a permis d'économiser des heures de travail."

Un rapport révèle comment quelqu'un a pris un fichier EXE Visual Basic vieux de 27 ans, l'a donné à Claude 3.7, et l'a regardé faire la rétro-ingénierie du programme et le réécrire en Python. Pour rappel, Claude 3.7 Sonnet est le dernier modèle d'IA en date d'Anthropic et est la version la plus "intelligente" de l'entreprise à ce jour. Ce modèle hybride combine une capacité de raisonnement, c'est-à-dire le fait de s'arrêter pour réfléchir à des réponses complexes, avec un modèle traditionnel qui produit des réponses en temps réel.

Il s'agissait d'un vieux programme Visual Basic 4 écrit en 1997. L'exécution d'un fichier EXE VB4 en 2024 peut être un véritable cauchemar de compatibilité, avec la recherche de DLL obsolètes et de solutions de contournement désordonnées. C'est pourquoi ! Le développeur a décidé de télécharger l'exe vers Claude 3.7 avec cette demande : "Pouvez-vous me dire comment faire fonctionner ce fichier ? Ce serait bien de le convertir en Python".


Claude 3.7 a analysé le binaire, extrait les « tokens » VB (VB n'est pas un langage entièrement compilé par une machine, ce qui rend cette tâche beaucoup plus facile que quelque chose en C/C++), identifié les éléments de l'interface utilisateur, et même extrait les fichiers son. Il a ensuite généré un équivalent complet en Python à l'aide de Pygame.

Selon l'auteur, le code a fonctionné du premier coup et l'ensemble du processus a pris moins de cinq minutes, il renvoie au journal de bord du LLM pour le prouver. Il est tout à fait logique que cela fonctionne, mais il semble que ce soit le premier exemple public/viral de téléchargement d'un EXE de cette manière.

Les anciennes applications commerciales et les jeux pourraient être modernisés sans avoir besoin du code source original. Des outils comme Claude pourraient faciliter la décompilation et l'archéologie logicielle : les binaires propriétaires de plates-formes mortes pourraient avoir une nouvelle vie en open-source également.

Ce type de rapport justifie pourquoi les investisseurs fournissent autant de capitaux dans les entreprises éditeurs d'IA. Concernant Anthropic, la société a récemment finalisé un tour de table de 3,5 milliards de dollars, établissant sa valeur à 61,5 milliards de dollars. Cette nouvelle opération d'Anthropic intervient quelques mois seulement après que l'entreprise a levé 4 milliards de dollars supplémentaires auprès d'Amazon.


Voici le rapport du développeur en question :

J'ai téléchargé un fichier EXE vieux de 27 ans sur Claude 3.7 et ce qui s'est passé ensuite m'a sidéré.

Après des années de déception à l'égard de l'IA, je suis véritablement choqué. Il ne s'agit pas d'un article typique sur le thème « L'IA est incroyable » - j'étais profondément sceptique jusqu'à aujourd'hui.

Le contexte : Comme beaucoup, j'ai essayé ChatGPT et d'autres outils d'IA pour obtenir de l'aide au codage. Les résultats ? Toujours décevants. Des moteurs de recherche glorifiés qui recrachent du code défectueux enveloppé d'explications confiantes.

Le défi : Ma petite-fille de 2 ans m'a rendu visite aujourd'hui. Je me suis souvenu d'une application simple que j'avais écrite en Visual Basic 4 en 1997 et qui pourrait lui plaire. Mais exécuter un exécutable vieux de 27 ans ? Sans les anciennes DLL et les couches de compatibilité ? Oui, c'est vrai.

L'Ave Maria : Par curiosité, j'ai téléchargé le fichier EXE sur Claude 3.7 avec une simple invite : « Pouvez-vous me dire comment faire fonctionner ce fichier - je pense qu'il provient de Visual Basic 4. Ce serait bien de le convertir en Python ».

Ce à quoi je m'attendais : L'habituel « Ceci est un vieux fichier, risques de sécurité, bla bla bla... ».

Ce qui s'est passé : Claude 3.7 a démarré avec les avertissements attendus, mais les choses sont devenues intéressantes par la suite. Il a en quelque sorte analysé le binaire et identifié des composants spécifiques :

  • « Form1 »
  • « cntTimer »
  • « btnExit »
  • Elle a même détecté les fichiers audio intégrés !

Ensuite, Claude 3.7 a fait quelque chose qu'aucune autre IA n'a fait pour moi : il a écrit une conversion Python complète à l'aide de Pygame qui :

  • reproduit parfaitement les fonctionnalités
  • qui contient des instructions claires pour l'installation
  • A FONCTIONNÉ DÈS LA PREMIÈRE FOIS

Temps passé : Moins de 5 minutes. Je n'exagère pas.

Lorsque j'ai demandé des ajustements tels que l'association de sons à la touche espace et l'ajout de polices colorées, il a immédiatement fourni des mises à jour de code parfaites.

Pour la première fois dans mon expérience de l'IA, je suis réellement impressionné. Il ne s'agissait pas d'un simple tour de passe-passe, mais d'une solution pratique qui m'a permis d'économiser des heures de travail.

Au final, j'ai dit à Claude que j'étais impressionné et je lui ai donné un résumé mal écrit de la raison pour laquelle je pensais qu'il était cool...., puis il a réécrit le post Reddit pour moi. En fait, il a l'air « presque » normal. (J'ai écrit cette partie).

Mise à jour <Même jour 5 heures plus tard>

J'ai posté une mise à jour/résumé (écrit par moi) à propos de ce post. Je ne suis pas sûr que ce soit la bonne façon de faire, mais au moins une personne sur Internet l'a dit, donc ça doit être vrai.

<Mise à jour -- 11 heures plus tard>

Ceci a été posté sur X. Je suppose que je suis un « grand-père reddit ». C'est très drôle.

Je remets quelques pendules à l'heure :

  • oui, claude m'a permis d'uploader un EXE
  • vb est un pcode. l'exe compilé a quelques chaînes de caractères reconnaissables, mais pas beaucoup.
  • C'est Claude qui a écrit ce post et le titre. C'est la meilleure partie, en plus de la photo unique.
  • l'application vb est simple. elle joue des fichiers wav et affiche du texte lorsque ma fille de 29 ans tape sur le clavier.

J'ajoute le lien du chat car certaines personnes ne le voient pas dans les commentaires.

<Mise à jour - 1 jour plus tard>

Ce repost sur Twitter/X a généré plus d'un million de vues pour u/deedydas. L'article complet est ici. J'ai téléchargé le message avec tous les commentaires à Claude - dans le même contexte où il avait créé le script et le message. Je lui ai spécifiquement demandé de résumer les critiques. Voici les mots abrégés de Claude :

Contexte technique valable

Certains ont souligné à juste titre que les exécutables VB4 se compilent en code p (et non en code machine), ce qui les rend plus faciles à analyser que des exécutables entièrement compilés. C'est exact - VB avant .NET stockait une forme de bytecode interprétable, ce qui rend l'extraction d'informations plus facile qu'à partir de binaires entièrement compilés.

Scepticisme à l'égard de la complexité

D'autres ont noté que le code Python résultant était relativement simple (environ 100 lignes). C'est juste - l'application elle-même était un programme simple avec des fonctionnalités de base, pas une application complexe. Ce qui est impressionnant, ce n'est pas la complexité du code produit, mais plutôt l'absence d'effort pour passer du code binaire au code fonctionnel.

Une mauvaise compréhension du processus

Plusieurs critiques ont semblé penser que Claude avait « décompilé » l'exécutable au sens traditionnel du terme. En réalité, comme je l'ai décrit lors de notre conversation, il a analysé les chaînes de caractères visibles et en a déduit la fonctionnalité - ce qui est toujours impressionnant mais différent d'une véritable décompilation.

Scepticisme général à l'égard de l'IA

Dans les milieux technologiques, les capacités de l'IA suscitent un scepticisme naturel, certains commentateurs rejetant par réflexe toute démonstration impressionnante en la qualifiant de fausse, d'exagérée ou de « simple correspondance de motifs ». Il s'agit là d'une réaction courante aux progrès de l'IA.

La critique que je trouve la plus raisonnable est que la réalisation doit être contextualisée - Claude n'a pas effectué une véritable analyse binaire d'un code compilé arbitraire, mais a plutôt fait des déductions intelligentes à partir de chaînes de texte dans un exécutable VB.
Source : Archive du chat avec Claude

Et vous ?

Pensez-vous que ce rapport est crédible ou pertinent ?
Quel est votre avis sur le sujet ?

Voir aussi :

Claude 3 bat GPT-4 sur le benchmark d'édition de code d'Aider, et surpasse tous les modèles d'OpenAI, ce qui en fait le meilleur modèle disponible pour la programmation en binôme avec l'IA

Les assistants d'IA de codage font-ils vraiment gagner du temps aux développeurs ? Une étude suggère que ces outils n'augmentent pas la vitesse de codage, mais augmentent significativement le taux de bogues

L'IA peut écrire du code mais ne parvient pas à le comprendre, selon une étude d'OpenAI. Testés sur des tâches réelles de programmation, les modèles les plus avancés n'ont pu résoudre qu'un quart des défis
Vous avez lu gratuitement 17 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de esperanto
Membre émérite https://www.developpez.com
Le 06/03/2025 à 16:57
Dès qu'une profession intellectuelle se complait dans le confort de la routine, faut pas s'étonner que l'IA finisse par faire mieux.

Je le vois bien dans le monde des traducteurs. En théorie, aucune IA ne peut faire aussi bien qu'un humain parce qu'elle ne connaît pas le contexte spécifique à chaque traduction. Mais dès que les donneurs d'ordre en viennent à exiger des cadences telles ou des prix tellement bas qu'il devient matériellement impossible de prendre le temps de lire attentivement le texte à traduire, alors le traducteur n'a d'autre choix que de devenir d'abord un relecteur d'IA, avant de finalement devenir un simple validateur. Et là, l'IA fait mieux.

Pour les programmeurs, c'est pareil.

Aujourd'hui avec les méthodes "agiles", la mode est de reléguer le développeur au plus bas de l'échelle, même si on dit "DevOps" pour faire plus classe (ce qui veut en réalité juste dire qu'il doit aussi assurer l'installation et l'administratif sans en avoir le temps). Pas question qu'il s'intéresse au métier du client, ça c'est le rôle des "analystes". Pas question qu'il fasse des choix techniques, pour ça le manager va juste prendre la dernière technologie à la mode. Par contre, bien penser à toujours recopier les infos administratives dans JIRA plus tous les outils qu'on voudra bien mettre à votre disposition.
Mais le programmeur a aussi sa part de responsabilité. Combien j'en vois qui commencent par empiler toujours les mêmes frameworks avant même d'avoir pris le temps de lire la spécification du projet. Puis on fait un copier/coller de l'exemple tiré de la documentation du framework et on change le nom des classes en fonction de (ce qu'on a compris de) la spécification du client: de toute façon tous les projets sont pareils, tous les clients veulent juste un Create-Read-Update-Delete comme les autres.
Tant que les programmeurs auront cette mentalité, ne pas s'étonner que l'IA finisse par faire mieux.
1  0 
Avatar de Gambix
Futur Membre du Club https://www.developpez.com
Le 06/03/2025 à 10:05
Ce qui est domage n'est pas la capacité impressionnante de Claude ou autre, c'est la perte capacitative humaine qui va en découler. Noublions pas que si on ne mache pas .. les dents tombes et la machoire elle même peu se scellée.
Il en va de même avec les capacités cognitives. Utiliser l'IA cest beau, c'est cool, mais combien restera t'il de dev pour la maintenir. Quand déjà aujourd'hui je vois le niveau baisser drastiquement au niveau applicatif... Et même si ça ne changera rien je tiens a poser le problème
0  0