There is a moment in the life of an old piece of software when the question stops being "how do we evolve it?" and becomes "where did the sources go?". The developer has left, the file server has been migrated twice, and what remains is a .exe that has run without fail since 1999 — and that nobody dares touch any more.

VBReFormer Online exists for that moment. You drop the binary into your browser. You leave with a .vbp project that Visual Basic 6 reopens.

Try it now → vb.decompiler.tools

This is not the old VBReFormer in a web page

That is the important point, and it deserves to be said plainly: VBReFormer Online is not a wrapper. It runs on VBReFormer V7, an engine rewritten from scratch in .NET — backed by ten years of reverse engineering of the VB6 format and the MSVBVM60 runtime.

The historical decompiler fed us for a decade: its knowledge of the runtime, its call idioms, its analysis virtual machine. V7 inherits its semantics and discards its implementation. Disassembly goes through Iced, the control-flow engine is generic and tested in isolation, and the whole is locked down by 3,849 automated checks that run on every change.

What is free — and it is not a crippled demo

We made an unusual decision: the free tier goes a very long way, and it does so deliberately.

Free, no account, nothing to presentLicensed
Open a VB5/VB6 .exe, .dll or .ocx
Browse the complete project structure
The entire x86 disassembly, symbols resolved
The entire P-code, VB6 virtual-machine opcodes
The designer section of every form
Resources, the format map, binary patching
The reconstructed .vbp
The reconstructed VB6 source, as a preview — real signature, types, declarations and flowThe complete source
Export of the archive that reloads in the IDE
The workbench: symbol inventory, cross-references, global rename, graphs

Why so far? Because the quality of a decompiler is not demonstrated in a brochure. Where a competitor shows sub_401A30, VBReFormer shows CAHash.Insert. You have to be able to see that before paying, on your binary.

And the preview is not a mock-up: it is the real decompilation, untouched. Signature, inferred types, declarations and reconstructed control flow are all there. Only the body of the statements is withheld.

What the studio can do

The project tree — forms, modules, classes, user controls, procedures. Loaded lazily: on a binary with two hundred procedures, you do not wait for what nobody will look at.

Three ways into a binary, and they do not replace one another: the tree follows STRUCTURE, the symbol inventory follows NAMES, search follows TEXT. On SETUP1.EXE, 227 procedures are not something you scan by eye.

The symbol inventory distinguishes what was READ from what was SYNTHESISED. On SETUP1 there are 147 names read from the binary — facts — against 1,182 locations the binary does not name. Knowing which one you are looking at tells you what you can rely on, and the 147 are where you start.

The editor is Monaco, with a VB6 grammar written for it — not the VB.NET one it ships with. Ctrl+click goes to the definition, F2 renames globally: call sites in other modules follow.

The graphs — who calls what, and where execution goes. The control-flow view shows the code of each block, in five representations: shape only, IR, VB6, assembly, P-code. The last two are the machine listing sliced by block address.

Export produces a .zip archive: .vbp, .bas, .cls, .frm, in ANSI, the way the IDE expects them.

Eleven languages, and one decision about vocabulary

The studio speaks English, French, Spanish, Italian, German, Portuguese, Japanese, Hindi, Simplified Chinese, Arabic and Ukrainian. The language is negotiated from your browser; a selector at the top of the page changes it live, without losing the open binary. Arabic flips the entire layout.

The landing headline says "your VB6 sources, rebuilt from the executable". Not "recovered". The distinction is not modesty: local variable names, comments and formatting are not in the executable and cannot be extracted from it. What is rebuilt is an equivalent source. Where a value cannot be restored with certainty, VBReFormer writes a ? marker rather than a plausible value.

That is the rule that governs the whole product: a plausible, wrong value is the worst result a decompiler can produce.

What happens to your binary

You are uploading corporate code. So we say it plainly, and our terms of use repeat it:

  • it is analysed in memory, for the duration of your session
  • nothing is kept — neither the uploaded binary nor the reconstructed project; closing the session erases both
  • the service does record which programs were analysed, as a fingerprint of their content — a number that identifies a file without allowing it to be reconstituted, and without revealing its name. This information is kept for one year, then erased
  • the log contains neither your file's name, nor its content, nor the reconstructed code

"Beta" means something

We would rather tell you than let you find out:

  • A single instance. The service does not scale out yet; at peak times a session may be refused rather than served slowly. Turning away the next visitor is better than restarting for everyone
  • One session per visit. A service restart closes open sessions
  • 64 MB per binary. Enough for the overwhelming majority of VB6 programs; tell us if you hit it
  • Recompilation is not guaranteed. On our bench of 149 exported projects, 119 recompile as-is in VB6 — 80%. It is our primary quality metric, it is measured on every release, and it is rising. The other 30 need an intervention; since VB6 stops at the first error, that is often a single cause per project
  • And SETUP1.EXE, our public witness, is one of the 30. An Argument not optional at line 119 of frmSetup1.frm. We say so because it is the binary anyone can check us on

We could have left those last two points out. We publish them because they are what you need in order to decide.

And the desktop?

VBReFormer V7 — the desktop application — ships very soon. It adds what a browser cannot offer: the object and TypeLib explorer, the Win32 API browser, the hex view, bookmarks, designer export to image, and offline work.

A desktop+cloud licence opens both.

Upload a binary → vb.decompiler.tools