Last updated: June 2026
If you run a Visual Basic 6 application and no longer have the source code, you cannot simply decompile your way back to it. Most VB6 apps were compiled to native code, which does not hand back clean source1. The realistic path is reconstruction. PCG extracts what is recoverable, documents how the app behaves, and rebuilds it on .NET.
A developer reverse engineering a legacy Visual Basic 6 application with no source code to plan a .NET rebuild in 2026

Can you decompile a VB6 EXE to get the source code back?

The honest answer is rarely, and never cleanly. Visual Basic 6 compiles in two modes, P-code and native code. Native was the default in VB6, and roughly 90 percent of VB6 applications shipped as native2.

If your app is P-code, a decompiler can recover the forms and a good part of the program logic as pseudo-source. If it is native, you do not get the original code back at all. What you get is a slow reverse-engineering effort against disassembly3. Two things are gone for good in either case: the variable and function names, and every comment the original developer wrote. A decompiler hands you working logic full of names like Function1 and Var7, not a project anyone can maintain with confidence4. Decompilation is an analysis aid, not a restore button.

What can actually be recovered from a VB6 executable?

It helps to be precise about what survives compilation and what does not, because the gap is where the rebuild effort lives.

Recoverable

With decompilers and resource tools
  • Forms and their layout, from the .frm and .frx files
  • Icons and embedded resources
  • Partial program logic, more of it from P-code than native
  • The database schema and data, read from the live database the app uses

Lost

Not present in the compiled EXE
  • Original variable, function, and procedure names
  • Every comment and any record of design intent
  • Third-party OCX and ActiveX controls, which must be sourced or replaced4

The most valuable recoverable asset is usually not inside the EXE at all. It is the database the application has been writing to for years. That schema and that data are the real record of how the business runs, and they survive no matter how the program was compiled.

Why is "just decompile it" the wrong plan for a business-critical app?

Even a clean P-code decompile gives you pseudo-source that nobody can maintain confidently. No names, no comments, no design intent. Building the next ten years of a business on reverse-engineered code is fragile in a way that does not show up until someone has to change it.

The platform underneath is frozen too. The VB6 IDE has been unsupported since April 8, 2008, and Microsoft's own guidance is to replace VB6 applications with modern technology1. The runtime still ships in Windows 11, but support is limited to serious regressions and critical security issues, and it is 32-bit only5.

Recovered VB6 code runs on a platform Microsoft has told you to leave since 2008. Investing in maintaining that code is spending money to stay exactly where the vendor recommends against staying.

What does PCG actually do to rebuild a VB6 app with no source?

The method is reconstruction, and it starts by reading the application rather than chasing the missing code. The order matters.

  1. Discovery and behavior capture. Run the app, document every screen, input, output, and rule as a black-box specification of what it does.
  2. Database first. Read the schema and the data the app depends on. This is the backbone of the rebuild and the part that survived intact.
  3. Extract what the EXE allows. Pull forms and layouts for visual parity, recover resources, and use any P-code logic a decompiler can surface as reference material.
  4. Map the dependencies. Identify the third-party controls and external calls, then match each to a modern equivalent.
  5. Rebuild on .NET. Build to the documented behavior, not the lost code, so the result is a maintainable application rather than a transcription.
  6. Parallel run and cut over. Run the old and new against the same data until the new one is validated, then switch.

This is the same discovery-first approach PCG uses on every legacy engagement, including cases where the original developer has disappeared. The target and scope come out of step one, which is why the rebuild is quoted on evidence rather than on a guess. For the broader picture of moving VB6 forward, see the VB6 migration to .NET guide.

Lost the source to a VB6 app you depend on?

A 20-minute call. PCG asks what the app does, what it connects to, and where it runs, then tells you what a rebuild would involve.

Book Your Free Consultation

How long does a no-source VB6 rebuild take, and what drives it?

It depends, and the discovery phase is what turns that into a real number. The drivers are the count of forms and reports, how much business logic is buried in the code, the number of integrations and third-party controls, the size and cleanliness of the database, and whether the app is P-code, which is more recoverable, or native, which is less.

A single-form utility is a short project. A multi-module operations system with hundreds of rules is a larger one. The honest version of this answer never comes before the discovery phase, because quoting a no-source rebuild without reading the app first is how projects double in cost halfway through. The same variables drive the price, which is covered in the cost of losing your business software source code.

What happens if you do nothing?

The app keeps running, because the runtime still works in Windows 11. That is exactly what makes the risk so easy to defer.

The trigger is rarely a crash. It is a new Windows build that breaks a 32-bit dependency, a third-party control that stops loading after an update, a hardware failure on the one machine the app lives on, or a business requirement the frozen application cannot meet. On that day the rebuild becomes an emergency, run on the worst possible timing instead of yours. The source code did not vanish today. What is quietly disappearing is the choice about when to deal with it.

Plan the rebuild before the deadline picks itself

PCG runs a fixed-fee discovery that reads your VB6 app and its data, then quotes a rebuild path with a fixed scope.

Book Your Free Consultation

Frequently Asked Questions

Can I recover VB6 source code from an EXE file?+
Rarely, and never completely. If the app was compiled to P-code, a decompiler can recover forms and much of the logic as pseudo-source. If it was compiled to native code, which was the default for about 90 percent of VB6 apps, you cannot get clean source back. In every case, original names and comments are lost.
How do I know if my VB6 app is P-code or native?+
A decompiler or binary analysis tool can tell you by inspecting the executable. Native was the VB6 default, so most apps are native. P-code apps are more recoverable, but neither mode returns a maintainable project with original names and comments.
Will a decompiler give me back my original VB6 project?+
No. A decompiler is an analysis aid, not a restore. It surfaces logic and forms for reference, with generic names and no comments. It does not reproduce the original project a developer would maintain.
Can you rebuild a VB6 app if the original developer is gone and there is no source?+
Yes. The method is reconstruction, not decompilation. PCG documents how the app behaves, reads the database it runs on, extracts what the executable allows, and rebuilds the application on .NET, validated against the old one before cutover.
Does VB6 still run on Windows 11 in 2026?+
Yes. The VB6 runtime ships with Windows 11 and is supported for the lifetime of supported Windows versions, limited to serious regressions and critical security issues. The IDE has been unsupported since April 2008, and the runtime is 32-bit only.
How long does it take to rebuild a VB6 application without the source code?+
It depends on the number of forms, the amount of business logic, the integrations and third-party controls, and the database. A discovery phase that reads the app and its data produces the real estimate. A small utility is a short project, and a multi-module system is a larger one.
Who can rebuild a VB6 application with no source code?+
A custom software firm that does legacy reconstruction. PCG has rebuilt VB6, Visual FoxPro, Access, and Paradox systems since the late 1990s, starting each engagement by documenting what the application does before writing any new code.
About the Author

Allison Woolbert

CEO and Senior Systems Architect, Phoenix Consultants Group

Allison Woolbert is the principal of Phoenix Consultants Group, the custom software consultancy founded in 1995. PCG has rebuilt and migrated legacy systems across Visual Basic 6, Microsoft Access, Visual FoxPro, and Paradox for industrial, manufacturing, and environmental services clients since the late 1990s, including projects where no source code remained.

Allison leads PCG's discovery and architecture practice, where the first deliverable on every legacy engagement is a written account of what the existing application does, built before any new code is written. LinkedIn.

1 Microsoft. Support Statement for Visual Basic 6.0 on Windows. The VB6 IDE has been unsupported since April 8, 2008, and Microsoft recommends replacing VB6 applications with modern technology. learn.microsoft.com

2 VBReFormer technical documentation; VB Decompiler. VB6 compiles to P-code or native code; native is the VB6 default, and roughly 90 percent of VB6 applications are native-compiled. vb-decompiler.org

3 Developer community guidance and VB Decompiler product documentation. P-code can be decompiled to pseudo-source with relatively high recovery; native code cannot be restored to clean VB source and requires manual reverse engineering. vb-decompiler.org

4 VB Decompiler; Microsoft. Forms (.frm and .frx) and resources can be extracted, while original names and comments are lost, and third-party OCX or ActiveX controls cannot be recovered from the executable. learn.microsoft.com

5 Microsoft. The VB6 runtime is supported for the lifetime of supported Windows versions, limited to serious regressions and critical security issues, ships in Windows 11, and is 32-bit only. learn.microsoft.com

This article is informational and not legal, financial, or compliance advice for a specific situation. Phoenix Consultants Group has provided custom software development since 1995.