Decompiler-VB.Net
EN
Login
VBReFormer Gen2 Engine rewritten from scratch, full P-code, and the online studio in public beta. Read the announcement →
Home

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.

.exe.dll.ocx.scrVB5 VB6 native code and P-Code UPX
748,064+ downloads 27 years of expertise
VBReFormer Pro (Gen2) — VB6 code
VBReFormer Pro (Gen2) — Types & API
VBReFormer Pro (Gen2) — Forms
VBReFormer Pro (Gen2) — Design surface
VBReFormer Pro (Gen2) — Assembly
VBReFormer Pro (Gen2) — Control flow
VBReFormer Pro (Gen2) — Call graph

Trusted by

and public bodies, defence laboratories and universities on five continents


Generation 2 · All editions

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
VBReFormer Pro (Gen2) — Types & API
Types & API Enlarge

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.

Note: as of VBReFormer 7, both P-Code and Native Code are decompiled. The previous generation reconstructed Native Code only.

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 function

SETUP1.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
VBReFormer Pro (Gen2) — Control flow
Control flow Enlarge
VBReFormer Pro (Gen2) — Assembly
Assembly Enlarge
VBReFormer Pro (Gen2) — Call graph
Call graph Enlarge
All editions

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
.vbp.frm.frx.bas.cls.ctl
VBReFormer Pro (Gen2) — Forms
Forms Enlarge
Unique · All editions

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 Pro (Gen2) — Design surface
Design surface Enlarge
Public beta

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

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 beta

Drop 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.

Documentation

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.

100% French

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 →

Choose your license

Choose an edition and a number of users: your licence is ready in under 30 seconds.