Decompiler-VB.Net
FR
Connexion
VBReFormer Gen2 Moteur entièrement réécrit, P-code complet, et le studio en ligne en bêta publique. Lire l'annonce →
Code source perdu

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.

VBReFormer Pro (Gen2) — Code VB6
Code VB6 Agrandir

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.

VBReFormer Pro (Gen2) — Surface du design
Surface du design Agrandir

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.

VBReFormer Pro (Gen2) — Types & API
Types & API Agrandir

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.

Combien de code revient, mesuré sur 207 programmes

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
VBReFormer Pro (Gen2) — Graphe d'appels
Graphe d'appels Agrandir

Comment procéder, gratuitement d'abord

  1. 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. 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. 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 €

Recommandé

Standard

Retrouver votre code source

79 € par utilisateur

Professional

Standard, plus les outils d'analyse

229 € par utilisateur

Voir les licences et tarifs

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
VBReFormer Pro (Gen2) — Code VB6
VBReFormer Pro (Gen2) — Types & API
VBReFormer Pro (Gen2) — Surface du design
VBReFormer Pro (Gen2) — Graphe d'appels