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
Documentation
VBReFormer Online

Manuel VBReFormer Online

Manuel d'utilisation de VBReFormer Online : déposer un exécutable VB6 dans le navigateur, explorer son code reconstruit, télécharger un projet rechargeable dans l'IDE.

Mis à jour le 20/09/202611 chapitres

Le studio dans votre navigateur. Vous déposez un exécutable Visual Basic 5 ou 6, vous explorez son code reconstruit, et vous repartez avec une archive que l'IDE VB6 rouvre. Rien à installer, sur n'importe quel système — y compris macOS, Linux et les Windows trop anciens pour l'application de bureau.

1. Ouvrir le studio

Il n'y a rien à installer, rien à configurer et aucun compte à créer pour commencer : ouvrez l'adresse du studio dans un navigateur récent, et vous y êtes.

  • Tout système — le studio ne dépend que du navigateur. C'est la seule façon d'utiliser VBReFormer depuis un Mac, un poste Linux, ou un Windows antérieur à 10.
  • Onze langues — le studio web est servi dans onze langues, près de quatre fois plus que l'application de bureau. Le sélecteur est dans l'en-tête.
  • Thème clair ou sombre — le studio suit le réglage de votre système, et vous pouvez le forcer.

Français · English · Español · Deutsch · Italiano · Português · 日本語 · 简体中文 · Українська · हिन्दी · العربية

2. Déposer un binaire

  1. Cochez la déclaration. Le studio vous demande de déclarer que vous êtes propriétaire du programme, ou que vous disposez du droit d'en analyser le code. C'est une condition d'usage, pas une formalité.
  2. Déposez le fichier. Glissez-le dans la zone prévue, ou parcourez vos fichiers. Formats acceptés : .exe, .dll, .ocx. Taille maximale : 64 Mo — la limite est affichée à l'écran plutôt que découverte après un téléversement raté.
  3. Laissez l'analyse se dérouler. Le studio annonce chaque étape par son nom, avec un compteur : Réception du fichier → Analyse du binaire → Décompilation → Inventaire des symboles → Graphe d'appels → Flot de contrôle.

La durée dépend de la taille et de la nature du binaire. À titre de repère, un exécutable de 9,35 Mo passe de l'ouverture au projet écrit en une douzaine de secondes.

Une fois l'analyse terminée, le studio vous dit aussi la nature de ce qu'il a trouvé : code natif, P-code, ou nature indéterminée.

3. Ce qu'il advient de votre fichier

Le fichier est analysé, puis effacé avec votre session. Rien n'est conservé.

C'est écrit sur la page de dépôt, et c'est le fonctionnement réel : votre binaire est traité le temps de votre session de travail, et disparaît avec elle. Il n'est pas archivé, pas indexé, pas réutilisé.

Ce que cela implique aussi. Votre travail ne survit pas à la session. Si vous fermez l'onglet ou si la session expire, il faut redéposer le binaire. Téléchargez votre archive avant de partir. Un redémarrage du service déconnecte également les sessions en cours — sans risque pour votre fichier d'origine, qui est sur votre machine, mais vous perdrez l'exploration en cours.

Si la confidentialité de votre binaire est un enjeu contractuel, sachez que l'édition Desktop traite localement tout ce qui relève de la lecture du fichier — format, octets, désassemblage, ressources — et n'envoie au service que ce qui relève de la reconstruction.

4. Quatre façons d'entrer dans un binaire

Le panneau de gauche offre quatre entrées, et elles répondent à quatre questions différentes.

onglet la question à laquelle il répond
Projet « Comment ce programme est-il organisé ? » — l'arbre des formulaires, classes, modules et de leurs procédures, tel que VB6 le voyait.
Symboles « Où est défini ceci ? » — l'inventaire complet, avec la nature et le conteneur de chaque symbole. Il distingue les noms lus des noms synthétisés, ce qui vous dit d'emblée à quoi vous pouvez vous fier.
Recherche « Où apparaît ce texte ? » — dans le code reconstruit comme dans les sections concepteur.
Ressources « Qu'y a-t-il d'autre que du code ? » — icônes, curseurs, bitmaps, tables de chaînes, informations de version, avec leur type, leur taille et leur contenu. Servi sans licence : une ressource se lit, elle ne se reconstruit pas.

Dans l'arbre, chaque membre porte sa visibilité telle que le binaire la déclare — (Public), (Private), (Friend). Un membre dont la visibilité n'a pas pu être lue ne porte aucune marque : on n'écrit pas ce qu'on ne sait pas.

Renommer

Le studio web permet de renommer les symboles, et le renommage est global : les sites d'appel des autres modules suivent. C'est le geste central du travail sur un binaire — le décompilateur vous rend la logique, vous lui rendez les noms.

5. Les vues

Sept vues, et le studio dit lui-même, sous chacune, ce qu'elle montre et si elle demande une licence.

vue ce qu'elle montre licence
Source le code VB6 reconstruit aperçu sans licence
IR ce que le décompilateur voit avant de reconstruire le flot aperçu sans licence
Assembleur code machine x86, symboles résolus servi en entier
P-code opcodes de la machine virtuelle VB6 servi en entier
Concepteur la section concepteur du formulaire servi en entier
Projet le .vbp reconstruit servi en entier
Structure les structures du format telles qu'elles ont été lues servi en entier

La ligne qui sépare. Ce qui se lit dans votre fichier est gratuit ; ce qui se reconstruit est vendu. Le désassemblage, la structure, le concepteur et le .vbp sont tirés de tables présentes dans votre exécutable. La source VB6, elle, n'existe nulle part — il faut la reconstruire, et c'est ce travail qui est le produit.

Sous le code, le studio affiche également ce que le décompilateur signale pour la procédure courante : les diagnostics, c'est-à-dire ce qu'il n'a pas pu faire et pourquoi. C'est le réflexe à avoir dès qu'un résultat surprend.

6. Ce que la compilation garde, et ce qu'elle jette

Ce chapitre explique pourquoi vos formulaires ressortent très lisibles et vos modules .bas avec des noms techniques. La règle est simple :

Ce dont Visual Basic a besoin pendant l'exécution, il l'a écrit dans le fichier : VBReFormer le retrouve. Ce dont il n'avait plus besoin après la compilation, il l'a jeté — et personne ne peut le retrouver.

Ce qui survit : noms des formulaires, classes et modules · noms des contrôles · gestionnaires d'événements · membres publics des classes · propriétés d'interface · appels au runtime VB (635 fonctions) · API Win32 (15 680 signatures) · la structure du code · les chaînes.

Ce qui n'est pas dans le fichier : les commentaires · les noms des variables locales · les noms des paramètres · les constantes nommées, remplacées par leur valeur · les noms des procédures de modules .bas · l'indentation d'origine.

Un exemple vérifiable

L'extrait ci-dessous vient de SETUP1.EXE, l'assistant d'installation livré avec Visual Basic 6 — dont Microsoft distribue le code source. La comparaison est donc refaisable par quiconque possède VB6.

Source d'origine, COMMON.BAS :

Sub AddDirSep(strPathName As String)
    If Right(Trim(strPathName), Len(gstrSEP_URLDIR)) <> gstrSEP_URLDIR And _
       Right(Trim(strPathName), Len(gstrSEP_DIR)) <> gstrSEP_DIR Then
        strPathName = RTrim$(strPathName) & gstrSEP_DIR
    End If
End Sub

Rendu par VBReFormer :

Public Sub proc_42C506(ByRef arg_8 As String)
    If ((Right(Trim(arg_8), Len("/")) <> "/") And (Right(Trim(arg_8), Len("\")) <> "\")) <> 0 Then
        arg_8 = (RTrim$(arg_8) & "\")
    End If
End Sub

Logique identique, ligne pour ligne. Right, Trim, Len, RTrim$ sont nommés ; le passage ByRef est déduit. En revanche le nom de la procédure et celui du paramètre sont perdus, et les constantes apparaissent sous leur valeur — c'est le compilateur qui les a remplacées, pas VBReFormer.

Les marqueurs

VBReFormer ne devine jamais : une valeur qui ne peut pas être établie est marquée plutôt qu'inventée.

marqueur signification que faire
proc_42C506 procédure désignée par son adresse la renommer — le nom se propage
var_18, arg_8 variable locale ou paramètre lire son usage, puis renommer
? valeur non établie consulter la vue Assembleur au même endroit

Un fichier contenant un ? sera refusé par l'IDE VB6. Le marqueur est là pour que vous décidiez, pas pour être recompilé tel quel. Une valeur vraisemblable et fausse est le pire résultat qu'un décompilateur puisse produire.

7. Les graphes

Deux graphes, et ils ne racontent pas la même histoire.

  • Appels — qui appelle quoi : l'architecture du programme. Filtres Appelants, Appelés ou Les deux, et une option pour masquer les nœuds isolés.
  • Flot — par où passe l'exécution : les blocs, l'entrée, les en-têtes de boucle, les retours de boucle, et les blocs marqués INATTEIGNABLE.

Cinq façons de lire un bloc

Sélectionnez un bloc du graphe, et choisissez ce que vous voulez y voir : Forme, IR, VB6, Assembleur ou P-code. C'est la même portion de programme, à cinq niveaux de lecture.

L'honnêteté du rendu. Le studio indique combien de blocs sont ancrés sur les lignes de listing, et combien sont sans adresse prouvée — leurs instructions tombent alors dans la tranche précédente. Vous savez donc quelle partie du découpage est certaine.

Les graphes demandent une licence : qui appelle quoi et par où passe l'exécution, c'est l'architecture du programme. Le désassemblage et la structure restent ouverts sans.

8. L'aperçu et la licence

Sans licence, la vue Source ne vous est pas refusée : elle s'affiche partiellement masquée. Vous voyez la structure, les noms retrouvés et la qualité réelle de la reconstruction — sur votre propre binaire — avant de payer quoi que ce soit.

C'est un choix délibéré : un visiteur qui ne voit rien ne peut pas juger. Et si un abonnement expire, vous voyez ce que vous retrouveriez plutôt qu'une porte fermée.

Un poste à la fois

Une licence VBReFormer ouvre un poste à la fois — et un navigateur compte pour un poste. Si la vôtre travaille ailleurs, le studio vous propose de la transférer ici depuis votre compte, ou d'ajouter un poste. C'est un refus doux : vous avez payé, il ne vous manque rien.

9. Télécharger vos sources

Le panneau de livraison produit une archive .zip contenant le .vbp et ses fichiers — .bas, .cls, .frm — écrits en ANSI, comme l'IDE les attend. Le panneau annonce le nombre de fichiers et le poids avant le téléchargement.

Lisez les notes avant d'ouvrir le projet

Le studio affiche « ce qui n'a pas pu être reconstruit », avec un pourquoi pour chaque entrée. Certaines informations — les références externes, les options de compilation, le mode de démarrage — ne sont dans aucune structure du binaire : elles n'ont pas été effacées, elles n'y ont jamais été. Elles sont donc signalées plutôt qu'inventées.

Dans l'IDE, si une référence manque, ajoutez-la par Projet ▸ Références. Les marqueurs ? éventuels sont à traiter à la main.

Le panneau propose ensuite d'analyser un autre binaire : la session repart à zéro, et le fichier précédent est effacé.

10. Online ou Desktop ?

Les deux éditions partagent le même moteur et rendent le même code. Elles ne servent pas le même usage.

Online Desktop
Installation aucune MSI, Windows 10+
Systèmes tous Windows 10 et 11
Langues d'interface 11 3
Arbre, symboles, recherche, renommage
Les sept vues
Graphes d'appels et de flot
Export du projet ✔ (zip) ✔ (dossier)
Vue hexadécimale annotée
Ressources : inventaire et contenu
Ressources : extraction en fichier
Concepteur peint, export d'image (section en texte seulement)
Correctifs binaires
Références croisées
Explorateur d'objets, navigateur d'API
Signets, options de rendu
Le travail survit à la session
Facturation crédits abonnement

En résumé — Online pour ouvrir un binaire, comprendre ce qu'il fait et repartir avec les sources. Desktop pour travailler longtemps sur un binaire : octets, ressources, références croisées, correctifs, et un travail qui ne disparaît pas quand on ferme l'onglet.

11. Questions fréquentes

Mon binaire est-il conservé ? Non. Il est analysé puis effacé avec votre session. Voir le chapitre 3.

Mon fichier fait plus de 64 Mo. C'est la limite du studio, annoncée avant le dépôt. Pour un binaire plus gros, l'édition Desktop n'a pas cette contrainte de téléversement.

Où sont les ressources du binaire ? Dans l'onglet Ressources, à gauche — sans licence. Vous y voyez chaque entrée avec son type et sa taille, et son contenu quand vous l'ouvrez : l'image est peinte, le texte affiché, et le reste montré en octets plutôt que caché. L'extraction en fichier, elle, est propre à l'édition Desktop, comme la vue hexadécimale.

Pourquoi le code s'arrête-t-il au milieu d'une procédure ? C'est l'aperçu : sans licence, l'édition gratuite montre la structure, les noms et le désassemblage complet, mais le corps reconstruit demande une licence.

J'ai fermé l'onglet et j'ai tout perdu. Le travail ne survit pas à la session. Téléchargez l'archive avant de partir ; le binaire, lui, est toujours sur votre machine.

Le code exporté se recompile-t-il tel quel ? Souvent : sur un banc de 149 projets, 121 se recompilent sans retouche. Les autres demandent d'ajouter une référence ou de traiter quelques marqueurs.

Mon exécutable est compressé (packer). Il doit être décompressé au préalable, sans quoi les structures VB6 ne sont pas visibles dans le fichier.

Est-ce légal ? Cela dépend de votre juridiction et de vos droits sur le binaire — c'est le sens de la déclaration cochée au dépôt. L'usage prévu est la récupération de votre propre code, ou d'un code sur lequel vous détenez les droits ou une autorisation.