Product
VBReFormer, the native and P-Code VB decompiler for your VB5 and VB6 applications
Generation 2: the most capable native and P-Code decompilation. The engine interprets machine code and P-Code, both VB6 compilation modes, instead of matching patterns. It recovers the source code, forms and resources of an EXE, DLL or OCX and rebuilds a project that opens in the IDE. On a 9.35 MB reference binary: 1,976 procedures written, 0 empty bodies, 0 error markers.
Trusted by
and public bodies, defence laboratories and universities on five continents
The most capable native and P-Code decompiler
The generation 2 decompiler does not match patterns: it interprets the code, registers, virtual memory and FPU stack included, then translates it back into readable Visual Basic. It handles Native Code and P-Code alike, both VB6 compilation modes, and its output is measured against the original source.
- P-Code decompilation, VB5 and VB6
- Native x86 code decompilation, VB5 and VB6
- UPX-packed binaries: unpacked without ever being run
- Abstract interpretation of machine code, in place of pattern matching
- 1,158 of the 1,164 defined P-Code instructions translated to VB6 (the engine's table holds 1,536 opcodes)
- Reconstructs runtime calls (MSVBVM60.dll)
- 15,680 Win32 API declarations, 6,442 constants, 422 types
- Type inference, recovered names, array bounds, Select Case jump tables
- ByRef and ByVal proven by the code, not guessed
- User-defined types (Type … End Type) rebuilt, fields and types proven
- Currency, Variant, ParamArray and bounded arrays
- Four VB6 optimisation profiles covered and measured separately
- Then ASPack, MPRESS and PECompact Coming soon
90%
of the source code recovered on average. Local variable names and private symbols are not stored in the binary and are outside this figure.
About 80% of projects recompile in the Visual Basic 6 IDE without any touch-up.
Measured on a 9.35 MB reference binary, compared with its original source
| Generation 1 | Gen2 (V7) | |
|---|---|---|
| Procedures written at export | 1 799 | 1 976 |
| Empty body where the source is not | 229 | 0 |
| Error markers left in the rendered code | 1 129 | 0 |
| Signatures rendered as « As Unknow » | 75 014 | 0 |
One licence covers both generations: VBReFormer 7 (Windows 10 and 11) and generation 1 (Windows XP to 11) are downloaded from the same account.
See the coverage, function by functionSETUP1.EXE
Anyone can check: SETUP1.EXE
A Microsoft program whose source ships with VB6: anyone can compare.
136 → 227
procedures exported, from generation 1 to V7
22 / 24
procedures drawn at random and read against their source: V7 more faithful
It invents nothing
A value the binary cannot establish is admitted, never invented, and the project still opens in the IDE.
lblDest.Caption = ?
On screen, an unknown value is shown as “?”
lblDest.Caption = VBRF_ValeurInconnue()
On export, it becomes a call to VBRF_ValeurInconnue(), which VB6 accepts and which you find with a search
// export-notes.txt
Every omission is listed in the export notes, with its reason
Around the decompiler: analysis and navigation
The recovered code comes with tools to read it. Standard includes the x86 and P-Code disassembler, the hex view with binary patches and the symbol inventory. Professional adds the tools that follow code across the whole project: call and flow graphs, cross-references, global renaming.
Standard
- VB5/VB6 x86 Disassembler
- P-Code Disassembler
- Annotated hex view and binary patches
- Symbol inventory — names read versus names synthesised
Professional and site licence
- Call graph — three scales, caller / callee filters
- Control-flow graph, unreachable blocks included
- Cross-references
- Global rename — call sites in other modules follow
UI design extraction
VBReFormer extracts every visual design artifact from your compiled binary, even without the original project files.
- Extracts the VB project file (.vbp)
- Extracts forms and controls (.frm, .ctl, .pag)
- Extracts binary resources .frx (.ctx and .pgx with generation 1)
- Identifies all external COM, OLE and ActiveX components
- Object= and Reference= lines written when the TypeLib is readable, including one embedded in a third-party OCX
- Extracts embedded images and icons
Compiled UI Design Editor
The only tool on the market that lets you edit a compiled VB5/VB6 UI without any size limitation. Change control properties, fix captions, replace images — all directly on the compiled binary.
- Edit control properties in compiled binary
- No size limitation (unique feature)
- Replace embedded bitmaps and icons
- Add hidden properties without recompilation
- Export individual resources for reuse
Editing inside the binary is done by generation 1, supplied with the licence. Generation 2 reads a form's surface and all its properties, without writing them back yet.
VBReFormer Online: the studio in your browser
The same engine, with nothing to install. Drop an EXE, DLL or OCX: the project appears in your browser.
- Nothing to install: works on any system, including where the desktop application does not run
- Interface in 11 languages
- Your binary is not kept: it is analysed, then erased with the session
- Included in the Standard licence, together with the desktop application
For malware analysis
A suspicious binary can be studied safely: VBReFormer reads the code, it never runs it.
- The binary is never executed, not even to unpack UPX
- Fully qualified output (Frame1.Caption), no reconstructed With: ready for a deobfuscator or a downstream tool
- Names read from the binary are kept apart from synthesised names
Try it on your own binary
The free preview shows 35% of each body in clear, at least one line per block and per procedure, identical to the paid output. Five demos, including Microsoft's SETUP1.EXE, are served in full without a licence.
VBReFormer Online
Public betaDrop a VB5 or VB6 program in your browser: the structure and a code preview are shown for free, with nothing to install.
VBReFormer Desktop, free edition
The generation 2 engine, in its free edition. The decompiler runs on our servers: a connection is required.
Windows 10 → Windows 11
Editions
Feature comparison
Three editions, by what they unlock: Standard recovers and exports the source code, Professional adds the analysis tools, the site licence covers every user of an entity.
| Editions | Recommended
Standard Get your source code back 79 € per user |
Professional Standard, plus the analysis tools 229 € per user |
Site licence Professional, for every user of an entity from 799 € |
|---|---|---|---|
| Decompiler (P-Code and Native Code) | |||
| P-Code decompilation, VB5 and VB6 | |||
| Native x86 code decompilation, VB5 and VB6 | |||
| UPX-packed binaries: unpacked without ever being run | |||
| 1,158 of the 1,164 defined P-Code instructions translated to VB6 (the engine's table holds 1,536 opcodes) | |||
| Reconstructs runtime calls (MSVBVM60) | |||
| 15,680 Win32 API declarations, 6,442 constants, 422 types | |||
| Type inference, propagated to bodies and conditions | |||
| 80% of projects recompile in VB6 | |||
| Disassembler | |||
| Procedure identification (Forms, Modules, Classes…) | |||
| VB5/VB6 x86 Disassembler | |||
| P-Code Disassembler | |||
| Annotated hex view and binary patches | |||
| Symbol inventory — names read versus names synthesised | |||
| Assembly & VB syntax highlighting | |||
| Search engine across disassembly | |||
| UI design extraction | |||
| Extracts the project file (.vbp) | |||
| Extracts forms (.frm, .ctl, .pag) | |||
| Binary resources .frx (.ctx and .pgx with generation 1) | |||
| COM / OLE / ActiveX component identification | |||
| Embedded image & icon extraction | |||
| Design Editor | |||
| Edit control properties in compiled binary | |||
| No size limitation (unique feature) | |||
| Replace embedded resources (images, icons) | |||
| Add hidden properties without recompilation | |||
| Analysis tools | |||
| Call graph — three scales, caller / callee filters | — | ||
| Control-flow graph, unreachable blocks included | — | ||
| Cross-references | — | ||
| Global rename — call sites in other modules follow | — | ||
| General | |||
| Full access to VBReFormer Online + Desktop | |||
| Visual Basic 5 & 6 support | |||
| Supported formats: .exe .dll .ocx .scr | |||
| Windows 10 → Windows 11 | |||
| Free product updates | |||
| Online documentation & user guide | |||
| License scope | |||
| Users | Per user, 1 to 19 | Per user, 1 to 19 | 20, 100 or unlimited |
| Use type | Personal or commercial, any organisation | Personal or commercial, any organisation | Personal or commercial, any organisation |
| Installation | Per user or per computer | Per user or per computer | Per user or per computer |
| Choose your license | Get a license → | Get a license → | Request a quote → |
Licence valid for 1, 2 or 3 years depending on the term chosen at checkout, support and updates included for the whole period. VAT not applicable — art. 293 B of the French tax code.
Frequently asked questions
What is the difference between P-Code and Native Code?
VB6 compiles either to P-Code (pseudo-code run by the virtual machine) or to Native Code (x86 machine instructions, the default setting). As of generation 2 (VBReFormer 7), the same engine decompiles both into readable Visual Basic: 1,158 of the 1,164 defined P-Code instructions are translated, a measurement published on the coverage page. The previous generation reconstructed Native Code only.
Does the engine match patterns, or does it interpret the code?
It interprets. Generation 1 matched patterns in the compiled code and rendered only what it recognised. Generation 2 interprets machine code and P-code alike to reconstruct expressions and types; what it cannot reconstruct is neither dropped nor guessed, it is named and explained in the export notes.
Can VBReFormer decompile any VB6 program?
VBReFormer analyses every executable compiled with Visual Basic 5 or 6, in P-Code as well as Native Code. The interface — forms, controls, resources — is extracted in full in every case. Code reconstruction depends on what the binary kept: the free edition shows you that on your own file, before any purchase.
Does the decompiled code recompile in the Visual Basic 6 IDE?
Yes: in practice, about 80% of projects recompile without any touch-up. The export writes the headers the IDE requires (VERSION, Attribute VB_Name), without which VB6 rejects the file. A value that could not be established is never invented: it becomes a call to VBRF_ValeurInconnue(), which VB6 accepts and which you find with a search. What is not in the binary is named and explained in the export notes.
What is recovered from an executable, and what is lost for good?
Whatever Visual Basic needs at run time is in the file and comes back: names of forms, classes, modules and controls, event handlers, public class members, interface properties, runtime calls, API declarations. What the compiler threw away cannot be recovered, by any tool: comments, names of local variables and parameters, named constants replaced by their value, and the names of procedures in .bas modules. On average, 90% of the source code is recovered; what is missing comes down to those elements, absent from the file.
What if decompilation doesn't work on my binary?
That is exactly what the free edition is for: it shows you, on YOUR file and before any purchase, what can be extracted — forms, resources, project structure. We always recommend trying it first. As licenses are digital content delivered immediately, sales are final; if you hit a technical issue, our support will work with you on a solution.
Is there a free version?
Yes, and without buying anything. The free desktop edition is the same installer as the licensed one: it extracts the full interface (forms, resources, project structure) and shows a preview of the decompiled code, with no time limit. The online studio, served in eleven languages, does the same in the browser with nothing to install: disassembly, P-code, designer, .vbp project and resources are served in full, the reconstructed source code as a preview. The licence unlocks the complete code and the project export.
How long is the licence valid?
For the term you choose at purchase: one, two or three years. Email support and every update released during that period are included, at no extra cost. When it expires, access ends and you can take out a new licence. The free edition remains usable with no time limit.
Is it legal to decompile a program?
Yes, when you own the rights to the software — the typical case being reconstructing your own lost source code — or within the legal framework of interoperability. You must hold the necessary rights to the analyzed program.
Does VBReFormer decompile .NET, VB.NET or C#?
No. VBReFormer handles Visual Basic 5 and 6: .exe, .dll, .ocx and .scr. A .NET assembly needs a .NET decompiler; we compare several on the blog.
Designed and developed in France
VBReFormer is designed, built and maintained in France, between Toulouse and Savoie — French and European reverse-engineering expertise, with no reliance outside Europe.
Toulouse
Haute-Garonne · Occitania
Savoie
Auvergne-Rhône-Alpes
The right tool for the right job
.NET, C# or VB.NET? Free tools like dnSpy or ILSpy handle it very well. Our specialty is Visual Basic 5 & 6 — the genuinely hard problem, and the only one we aim to solve better than anyone.
Why this focus →Partners
A French ecosystem of reverse engineering and cybersecurity.
Choose your license
Choose an edition and a number of users: your licence is ready in under 30 seconds.