Historique des versions
De la première version 7 à la plus récente. Les entrées décrivent ce que vous voyez à l'écran : le code reconstruit, les noms retrouvés, ce que l'export permet de rouvrir dans Visual Basic 6.
7.0.6
2026-09-19Version en ligneCe que le code reconstruit vous montre de plus
Deux familles de corrections : du code qui manquait à l'écran, et, plus gênant, des valeurs affichées qui n'étaient pas les bonnes.
Du code qui manquait est revenu
Dans certaines procédures, des morceaux entiers ne s'affichaient pas. Rien ne le signalait : le code semblait simplement plus court que l'original.
Les branches d'un Select Case sortaient vides
Quand le compilateur transformait un Select Case en table de branchement, les sept branches apparaissaient vides et la valeur finale était perdue. Elles affichent maintenant leur contenu, chaînes de caractères comprises.
If ComponentType() > 6 Then ElseIf ComponentType() = 0 Then Else End If GetFilename = (? & ?)
If ComponentType() = 0 Then
s = (FormName & ".frm")
ElseIf ComponentType() = 1 Then
s = (FormName & ".ctl")
' … les sept branchesDes appels de méthode disparaissaient sans laisser de trace
Lorsqu'un objet était rangé dans une variable de module, l'appel qui suivait était parfois abandonné en silence : onze instructions retrouvées sur nos binaires de référence, dont des appels d'affichage de fenêtre.
If Method = 0 Then
OHash.Insert key(i), rec(i)
ElseIf Method = 1 Then
' (rien)
Else
' (rien)
End IfIf Method = 0 Then
OHash.Insert key(i), rec(i)
ElseIf Method = 1 Then
AHash.Insert key(i), rec(i)
Else
Collect.Insert key(i), rec(i)
End IfDes valeurs fausses corrigées
Ce sont les corrections les plus importantes de cette version. Le code affiché se lisait bien et se recompilait, mais il ne faisait pas la même chose que l'original.
La valeur d'une seule branche était affichée pour toutes
Quand plusieurs branches d'un test donnaient des valeurs différentes à la même variable, le produit affichait parfois celle d'une seule branche, valable pour tous les chemins. Rien ne le signalait.
If aExport Then ElseIf nom Like "*.ocx" Then Else End If s = "Type=Exe" & "Startup=" & …
If aExport = 0 Then
s = ("Type=Exe" & vbCrLf)
ElseIf nom Like "*.ocx" Then
s = ("Type=OleDll" & vbCrLf)
Else
s = ("Type=Control" & vbCrLf)
End IfLibérer une variable objet affichait une valeur inventée
Un simple Set X = Nothing pouvait ressortir avec une expression qui n'avait de sens dans aucun programme. Vingt-trois procédures de terminaison vérifiées : plus aucune.
Set node = (Me And 1) Set hash = eax Set p0 = arg_8
Set node = Nothing Set hash = Nothing Set p0 = Nothing
Des appels désignaient la mauvaise méthode
Dans une même classe, un appel pouvait porter le nom d'une autre méthode, un défaut invisible à la lecture puisque le nom affiché existe bel et bien. Le membre appelé est désormais identifié par sa position réelle plutôt que par son ordre de déclaration.
chrono.Elapsed table.Find taille, … r = table.Delete(clé)
chrono.Reset table.Init taille, … r = table.Find(clé)
Une méthode sans retour était affichée comme si elle en avait un
Collection.Add et Err.Raise ne renvoient rien. Leur résultat interne était pris pour une valeur et affecté à une variable : douze affectations fausses en moins.
Des noms à la place des numéros
Quand le produit ne parvient pas à identifier un membre, il affiche sa position dans la table des méthodes. Cette version en retrouve beaucoup plus.
tvItems.dispid_9 noeud.vtbl_64() noeud.vtbl_B4() liste.vtbl_28(…) var.vtbl_38 -1
tvItems.Nodes noeud.Key noeud.Text liste.Add(…) var.Expanded = -1
- Contrôles tiers : TreeView, ListView et leurs semblables. Leurs propriétés et méthodes portent leur nom, y compris pour les objets qu'elles renvoient.
- Interfaces standard Windows : nommées au lieu d'être affichées sous forme d'identifiant.
- Variables
WithEventsprivées : leur type est retrouvé, ce qui rend leurs gestionnaires d'événements lisibles. - Dans un
UserControl: les contrôles posés dessus s'écrivent comme dans la source, sans préfixe indu.
Moins de valeurs indéterminées
Le marqueur ? signale une valeur que le produit n'a pas pu établir avec certitude. Nous préférons l'afficher plutôt que d'inventer, mais moins il y en a, mieux c'est. Sur nos binaires de référence, leur nombre a baissé d'environ un tiers depuis la version précédente. Les causes traitées : adresses de champs perdues au milieu d'une boucle, éléments de tableau calculés, arguments passés par registre, valeurs partagées entre plusieurs branches d'un test.
Projets exportés
- Les variables de module sont déclarées. Sans leur ligne de déclaration, Visual Basic 6 lisait un accès de tableau comme l'appel d'une fonction inexistante et refusait le fichier entier.
- Les tableaux locaux à taille fixe aussi, avec leurs bornes réelles lues dans le binaire.
- Les procédures à nombre d'arguments variable sont reconnues comme telles.
- Les paramètres relayés conservent leur nature de tableau à travers plusieurs niveaux d'appel.
- Une interface au nom masqué n'est plus écrite telle quelle : VB6 refuse tout identifiant commençant par un souligné.
Mise à jour
Installez le nouveau paquet par-dessus l'ancien : c'est une mise à niveau, pas une seconde installation. Vos réglages sont conservés. Trois langues sont disponibles : français, anglais, espagnol.
7.0.5
2026-09-14Les projets qui ne se rouvraient pas dans l'IDE
Une version tournée vers les projets exportés que Visual Basic 6 refusait de rouvrir, et une correction de comportement qui ne se voyait pas à la lecture.
En bref
- Corrigé Cinq Show vbModal étaient rendus non modaux. Le fichier se lisait bien et se recompilait ; il n'ouvrait simplement pas les fenêtres de la même façon que l'original. Le plus sérieux des défauts corrigés dans cette série.
- Corrigé Un gros projet sortait à zéro fichier : un seul caractère sans équivalent dans l'encodage suffisait à faire échouer l'export entier.
- Amélioré GoSub est reconnu comme une construction du langage, ce qui permet enfin de recharger dans l'IDE les projets anciens qui l'emploient.
- Amélioré Les signatures d'événements portent les vrais types de leurs paramètres, lus dans la bibliothèque du contrôle, au lieu de Long par défaut.
- Amélioré Les procédures à nombre d'arguments variable (ParamArray) sont reconnues.
- Corrigé Cinq fonctions étaient affichées comme des procédures sans retour, alors que leurs appelants utilisaient leur résultat.
- Amélioré L'application identifie le poste qui utilise la licence par une empreinte à sens unique, jamais le numéro de série, le nom de l'ordinateur ni l'adresse IP ; si la licence est déjà active sur un autre poste, elle propose de la transférer.
frmMessage.Show ' non modalfrmMessage.Show vbModal
7.0.4
2026-09-13Types définis par l'utilisateur, tampons d'API, ouverture plus rapide
Le suivi des types définis par l'utilisateur et des tampons d'API, et une ouverture de fichier beaucoup plus rapide.
En bref
- Amélioré L'ouverture d'un binaire est nettement plus rapide : le lecteur de format picorait le fichier par petits morceaux, près de 78 000 lectures de 213 octets pour un seul fichier.
- Corrigé Les champs d'un type défini par l'utilisateur passé par adresse sont suivis, au lieu de n'en garder que le début.
- Corrigé Le tampon d'un appel d'API était relu comme une nouvelle allocation, ce qui produisait des répétitions et, dans un cas, une boucle sans fin dans le code affiché.
- Corrigé Un If pouvait s'ouvrir dans une boucle et se refermer après elle, structure que l'IDE refuse.
- Corrigé Les valeurs Currency et les arguments de huit octets sont lus avec la bonne largeur.
- Corrigé Un échec isolé de lecture faisait sauter tout l'inventaire des bibliothèques du projet.
- Amélioré Au refus d'export, l'application propose d'acheter la licence au lieu d'afficher un code d'erreur.
7.0.3
2026-09-09Installateurs signés, et ce que l'application annonce
Version de correction, centrée sur ce que l'application annonce et sur la carte du format. Les installateurs sont désormais signés.
En bref
- Sécurité Les installateurs sont signés au nom de Yneos et horodatés. Windows affiche l'éditeur vérifié au lieu de « Éditeur inconnu », et toute modification du fichier après coup invalide la signature.
- Corrigé La carte du format est accessible ; elle donnait déjà ce qu'une autre vue faisait attendre.
- Corrigé La fenêtre « À propos » annonçait six composants qui ne sont pas dans le paquet installé. Elle ne mentionne plus que ce qui est réellement livré.
7.0.2
2026-09-08Conditions d'utilisation et traitement du fichier envoyé
Ce que deviennent les fichiers que vous envoyez, et ce que les conditions d'utilisation en disent.
En bref
- Sécurité Le binaire que vous soumettez est effacé de façon garantie, y compris si le traitement s'interrompt. Les conditions d'utilisation le promettaient ; le processus pouvait s'arrêter avant.
- Corrigé Les conditions d'utilisation ont été corrigées : une clause sur le fichier était inexacte, et l'essentiel n'y figurait pas.
- Corrigé Le graphe refusait de s'afficher avec un code d'erreur au lieu d'expliquer ce qui manquait.
7.0.1
2026-09-06Première correction après la mise en ligne
Le paquet installé de la 7.0.0 ne fonctionnait pas. Cette version le remplace, et corrige ce que l'offre gratuite annonçait.
En bref
- Corrigé Le paquet installé était inutilisable : l'application ne démarrait pas. Un essai de démarrage réel fait désormais partie de la fabrication de chaque version.
- Corrigé L'aperçu gratuit annonçait 20 % du code et en livrait entre 25 et 83 % selon les fichiers. La proportion annoncée est maintenant celle qui est appliquée.
- Corrigé Le titre de la fenêtre indiquait « Pro » alors que l'offre gratuite était servie. Il indique désormais le palier réel, et refuse de nommer celui qu'il ne peut pas établir.
7.0.0
2026-09-05nouvelle générationLa génération 7 : une application de bureau reconstruite, un moteur neuf
VBReFormer change de génération. Le moteur de décompilation est entièrement nouveau, écrit de zéro et non dérivé de celui des versions 6, et l'application de bureau a été reconstruite autour de lui.
En bref
- Nouveau Le moteur peut tourner en local ou à distance, au choix au lancement.
- Corrigé Les références de bibliothèques sont écrites dans le projet exporté pour chaque type nommé ; sans elles, l'IDE refuse le fichier.
- Corrigé Les déclarations d'API (Declare) sont écrites par le chemin natif, ce qui manquait.
- Corrigé La signature d'une procédure et son corps pouvaient se contredire dans le même fichier, et Visual Basic 6 refusait celui des deux qui avait raison.
- Corrigé Les fichiers de ressources des formulaires sont écrits conformément à ce que l'IDE attend.
Ce qui change entre l'ancienne version et la 7
Un article compare les deux générations sur les mêmes binaires : ce que chacune reconstruit, et ce qu'elle ne reconstruit pas.