How To Decompile Vb6 Exe File


Online Exe Decompiler

This is the home page of (yet another) open source machine code decompiler project. The goal of a machine code decompiler is to analyze executable files (like .EXE or .DLL files in Windows or ELF files in Unix-like environments) and attempt to create a high level representation of the machine code in the executable file:the decompiler tries to reconstruct the source code from which the executable was compiled in the first place.

How To Decompile Vb6 Exe File Linux

From a command prompt or from the Runcommand, type: -decompile folder chm. Where -decompile is the switch, folder is the name of the destination folder where you want the decompiled files to be copied, and chm is the name of the compiled help (.chm) file you want to decompile.


To download the Decompiler, go to the project page:

Since compilation is a non-reversible process (information such as comments and variable data types is irretrievably lost), decompilation can never completely recover the source code of a machine code executable. However, with some oracular (read 'human') assistance, it can go a long waytowards this goal. An oracle can provide function parameter types, the locations of otherwise unreachable code, and user-specified comments.

Decompiler reads program binaries, decompiles them, infers data types, and emits structured C source code. Designed with a pluggable architecture, it currently has: - support for x86, 68k, PowerPC processors (partial support for Arm, Mips, Sparc, Z80, m6502, PDP-11) - support for EXE, Elf, AmigaOS Hunk executable formats - support for MS-DOS, Win32, U.ix, AmigaOS (partial for C64, ZX-81. I lost my visual basic source code file.But I have only exe where can I find Vb6 Decompiler to restore the source code. Please any body help me Comment. It is the exe decompiler for Visual Basic applications & disassembler for Visual Studio.NET apps. VB Decompiler can recover the lost source code of your Visual Basic applications. It supports disassembling and analyzing the IL code of Visual Basic.NET, C#, etc. First method – Decompile by using JD-GUI. Move the downloaded file in a new folder and change the extension to “.exe” to “.zip” Open JD-GUI by double clicking the jar executable. Now open the zip file we just created go to FileOpen File and choose the file.

The decompiler is designed to be processor- and platform-agnostic. The intent is that you should be able to useit to decompile executables for any processor architecture and not be tied to a particular instruction set. Although currently only a x86 front end is implemented, there is nothing preventing you from implementing a 68K, Sparc, or VAX front end if you need one.


The decompiler can be run as a command-line tool, in which case it can be fed either with a simple executable file, or a decompiler project file, which not only specifies the executable file to decompile but also any oracular information that assists its work. The decompiler also has a graphical front end, which lets an operator specify oracular information while examining the decompiled executable.

The outputs of the decompiler are a C source code file containing all the disassembled code and a header file in which type-reconstructed data types can be found.


The decompiler consists of several phases.
  • The loading phase loads the executable into memory and determines what kind of executable is being decompiled. The executable format usually defines the processor format and the expected operating system environment. For older formats, such as plain MS-DOS .EXE files, the processor (x86 real mode) and operating system environent (MS-DOS) are implicit. Once the format is determined, the binary is loaded into memory (uncompressing it if necessary) and pointer or segment relocations are carried out. These relocations are also helpfulin later stages of the decompiler, as each relocated pointer valuecan be given a preliminary type pointer-to(<unknown>) andeach relocated segment selector the type segment-selector.
  • The scanning phase follows the loading phase. The executablewill usually have one or more entry points, addresses pointing to executable code. The code at the the entry points is disassembled and traced, looking in particular for branch, call, and return statements. Successively, individual procedures are discovered, and call graph is built up, whose edges represent calls between procedures.
  • The rewriting phase rewrites all machine-specific instructions into low-level machine-independent instructions. Idiomatic instruction sequences are rewritten to expressions. From this point on, the decompilation process is processor independent.
  • The analysis phase first does a interprocedural reaching definitions analysis. This is done to determine, for each procedure proc of the program, which processor registersare preserved and which processor registers are modified after a call to proc. A subsequent interprocedural liveness analysis, combined with the results of the reaching definitions analysis, determins which processor registers are used as parameters and return value registers for each procedure. Note that this analysis avoids depending on a specific processor/platform ABI or calling convention. Once the two interprocedural analyses are complete, the procedures can be rewritten with their explicit arguments. Subsequent analyses are then performed on a procedure-by-procedure basis. Procedures are converted into SSA Form, condition code flags are eliminated and expressions are simplified. Finally the procedures are converted out of SSA Form.
  • The interprocedural type analysis phase attempts to recover the data types used in the program by analyzing the way in which values are used by the program code, incorporating clues obtained from the relocation data as well as any 'oracular' information provided by the user. Memory access expressions are converted into their C equivalents: pointer dereferences (*foo), member access expressions (foo->bar), and array references (foo[bar]).
  • Finally, a structure analysis rewrites the control structures from unstructured goto-sphaghetti code to C-language if, while- / do-loops, and switch-statements.


The decompiler is written in C# and currently targets CLR version 2.0.It's currently developed with Visual Studio 2005, but the planis to have a working MonoDevelop project soon (wanna pitch in?)

The project implements the Test Driven Development methodology, with heavy emphasis on unit testing.No new code is allowed into the project unless it has one or more associated tests written for it. Developing a decompiler is notoriously tricky work with lots of special cases. Not having unit tests would make development an eternal bug hunt as fixes for one bug introduce other bugs. Unit tests are developed using NUnit v2.2.

How To Decompile Vb6 Exe File

Subversion is used for source control.


The decompiler project is in a pre-alpha stage. As it stands, it is able to load MS-DOS and PE binary files,disassemble their contents, rewrite the disassembled instructions into intermediate code, and perform the analysis phasementioned above. Currently work is focussed on type analysis, while code structuring is on the back-burner as it's considerablyless complex than type recovery.If you'd like to chip in, feel free to contact us!

Decompile Exe To Source Code


How To Decompile Vb6 Exe File Windows 10

Decompiling a help file involves copying the files in a compiled help file to a directory that you specify while leaving the compiled help file intact. This procedure is useful for reconstructing individual HTML source files from a compiled help file. It is also useful when you want to use the source files contained in the compiled help file in a browser that does not support compiled help files.

To decompile a help file

  1. On the File menu, click Decompile.
  2. In the Destination folder box, enter the name of the folder where you want the decompiled files to be copied.
  3. In the Compiled help file box, enter the name of the compiled help (.chm) file you want to decompile.


The decompile command is part of the HTML Help executable program (Hh.exe) and is therefore also a client-side command line switch that works when HTML Help Workshop is not set up. From a DOS prompt or from the Run command, type -decompilefolderchm where -decompile is the switch, folder is the name of the destination folder where you want the decompiled files to be copied, and chm is the name of the compiled help file you want to decompile.

Related topics