Vous avez perdu le code source d'une application VB6. Voici ce qui se récupère.
Disque mort, développeur parti, sauvegarde d'une version trop ancienne : il ne reste que le programme compilé. Un décompilateur VB6 en tire beaucoup plus qu'on ne le croit, et moins que tout. Cette page dit lequel des deux, avant que vous n'installiez quoi que ce soit.
Vous êtes dans l'un de ces cas ?
Le disque a lâché
Le poste de développement est mort, mais l'EXE tourne toujours chez vos utilisateurs.
Le développeur est parti
Il a emporté le projet, ou personne ne sait où il l'avait rangé.
Le prestataire a disparu
La société qui a écrit l'application n'existe plus, et le source n'a jamais été livré.
La sauvegarde est trop ancienne
Le source retrouvé ne correspond plus à la version qui tourne en production.
Ce qu'il vous faut
Le fichier compilé : un .exe, une .dll, un .ocx ou un .scr produit par Visual Basic 5 ou 6. Rien d'autre. Pas besoin de savoir s'il a été compilé en P-Code ou en code natif : VBReFormer le détecte et traite les deux.
- Décompilation du P-Code, VB5 et VB6
- Décompilation du code natif x86, VB5 et VB6
- Binaires packés par UPX : décompressés sans être exécutés
- Puis ASPack, MPRESS et PECompact À venir
Ce qui revient
Les formulaires et contrôles, avec toutes leurs propriétés, images comprises : intégralement, dans tous les cas.
Les ressources, les chaînes, les références aux bibliothèques et contrôles tiers, la structure du projet : un .vbp qui se rouvre dans l'IDE.
Le code des procédures : conditions, boucles, appels, affectations, accès aux contrôles, reconstruits en Visual Basic lisible, en P-Code comme en natif. La page de couverture mesure ce que ça représente, programme par programme.
80 %
des projets se recompilent dans VB6 sans retouche
1 158 / 1 164
instructions P-Code définies traduites en Visual Basic
100 %
des formulaires et de leurs propriétés retrouvés, dans tous les cas
Ce qui ne revient jamais, chez nous comme chez quiconque : les noms des variables locales et les commentaires, que le compilateur n'a pas gardés. Le code récupéré se relit et se recompile, il ne ressemble pas mot pour mot à l'original.
SETUP1.EXE
Vérifiable par tous : SETUP1.EXE
Un programme de Microsoft dont la source est livrée avec VB6 : chacun peut comparer.
136 → 227
procédures exportées, de la génération 1 à la V7
22 / 24
procédures tirées au sort et lues contre leur source : la V7 plus fidèle
Une fois le projet récupéré
Il redevient un projet comme les autres : vous le rouvrez, le lisez et le maintenez dans l'IDE d'origine.
- Corriger un bug ou adapter une règle métier, puis recompiler
- Lire le code machine avec les désassembleurs x86 et P-Code, compris dans Standard
- Suivre le programme d'un bout à l'autre avec le graphe d'appels et les références croisées, dans Professional
- Documenter une application que plus personne ne connaissait en entier
Comment procéder, gratuitement d'abord
- 1
Ouvrez le binaire dans l'édition gratuite, ou déposez-le dans le studio en ligne sans rien installer. Vous voyez la structure du projet, les formulaires complets et un aperçu du code décompilé.
- 2
Jugez sur pièces : l'aperçu montre ce que le moteur reconstruit de votre binaire, pas d'un exemple. Si ce que vous voyez vaut la licence, prenez-la ; sinon, vous n'avez rien dépensé.
- 3
Avec la licence, exportez le projet complet et rouvrez-le dans Visual Basic 6 : environ 80 % des projets se recompilent sans retouche. Une valeur que le binaire ne permet pas d'établir devient un appel VBRF_ValeurInconnue(), que l'on retrouve par recherche.
L'article détaillé : reconnaître P-Code et natif, et par où commencer
Combien ça coûte
L'essai ne coûte rien. Vous ne payez que si ce que vous voyez sur votre propre binaire vous convient.
Édition gratuite
Formulaires complets, structure du projet et aperçu du code
0 €
Standard
Retrouver votre code source
79 € par utilisateur
Professional
Standard, plus les outils d'analyse
229 € par utilisateur
Questions fréquentes
Quelle est la différence entre P-Code et Code Natif ?
VB6 compile soit en P-Code (pseudo-code interprété par la machine virtuelle), soit en Code Natif (instructions machine x86, le réglage par défaut). Depuis la génération 2 (VBReFormer 7), le même moteur décompile les deux vers du Visual Basic lisible : 1 158 des 1 164 instructions P-Code définies sont traduites, mesure publiée sur la page de couverture. La génération précédente ne reconstruisait que le Code Natif.
Que récupère-t-on d'un exécutable, et que perd-on définitivement ?
Ce dont Visual Basic a besoin à l'exécution est dans le fichier et se retrouve : noms des formulaires, classes, modules et contrôles, gestionnaires d'événements, membres publics des classes, propriétés d'interface, appels au runtime, déclarations d'API. Ce que le compilateur a jeté ne se retrouve pas, par aucun outil : les commentaires, les noms de variables locales et de paramètres, les constantes nommées remplacées par leur valeur, et les noms des procédures de modules .bas. En moyenne, 90 % du code source est retrouvé ; ce qui manque tient à ces éléments, absents du fichier.
Le code décompilé se recompile-t-il dans l'IDE Visual Basic 6 ?
Oui : en pratique, environ 80 % des projets se recompilent sans retouche. L'export écrit les en-têtes que l'IDE exige (VERSION, Attribute VB_Name), sans lesquels VB6 refuse le fichier. Une valeur qui n'a pas pu être établie n'est jamais inventée : elle devient un appel VBRF_ValeurInconnue(), que VB6 accepte et que l'on retrouve par recherche. Ce qui n'est pas dans le binaire est nommé et motivé dans les notes d'export.
Et si la décompilation ne donne rien sur mon binaire ?
C'est précisément le rôle de la version gratuite : elle vous montre, sur VOTRE fichier et avant tout achat, ce qui peut être extrait — formulaires, ressources, structure du projet. Nous vous recommandons de toujours l'essayer d'abord. Les licences étant des contenus numériques livrés immédiatement, les ventes sont définitives ; en cas de difficulté technique, notre support cherche une solution avec vous.
Mon fichier est-il conservé ?
Votre binaire n'est pas conservé : il est analysé puis effacé avec la session
Est-il légal de décompiler un programme ?
Oui lorsque vous détenez les droits du logiciel — le cas typique étant la reconstruction de votre propre code source perdu — ou dans le cadre légal de l'interopérabilité. Vous devez disposer des droits nécessaires sur le programme analysé.
VBReFormer décompile-t-il le .NET, VB.NET ou C# ?
Non. VBReFormer traite Visual Basic 5 et 6 : .exe, .dll, .ocx et .scr. Pour un assembly .NET, il faut un décompilateur .NET ; nous en comparons plusieurs sur le blog.
Vous préférez qu'on le fasse pour vous ?
Nous récupérons le projet à partir de votre binaire, le rouvrons dans l'IDE et vous le livrons prêt à maintenir, avec un rapport de ce qui a été retrouvé. Évaluation gratuite du binaire avant devis.
Demander une évaluation gratuite
