Decompiler, disassembler and design editor at the same time, VBReFormer is an essential tool for professionals and companies who work with older versions of their Visual Basic 5/6 applications.
VBReFormer disassemble all functions and methods in forms, controls, classes, and modules of Visual Basic application and try to recover the most complete Visual Basic source code than possible (if compiled with the native code option).
Even better, the integrated design editor of VBReFormer succeeds where others resources editors fail with Visual Basic applications giving you the ability to edit UI design of Visual Basic applications in a simple and easy way with no limitation of size, and with no need to recompile the application, working directly on its binary.
The decompiler engine has been improved as it can now perform variable type determination. This means that VBReFormer is now able to guess the type of a variable and argument from its use inside the code.
I have also made this tools because VBReFormer Free edition was not supporting decompilation at all, while VBReFormer Pro does. Then, you were not able to know, by using the free version, if the Pro one will support your application.
The reason is, when you write a Visual Basic 6.0 application you may choose a P-Code or Native code compilation, then your application will be compiled to P-Code or Native code which are very different approaches of compilation, so the decompilation will be different too.
In fact, P-Code decompiler are today almost useless because 90% of Visual Basic 6 application are released with Native Code mode. This article will explain first the difference between P-Code and Native code, and then explain why the rate of Native code application is so important compared to P-Code applications. I. P-Code Versus Native Code
When you write a line of code in the IDE, Visual Basic breaks it down into expressions and encodes the expressions into a preliminary format called op-codes. In other words, each line is partially precompiled as it is written. Some lines contain shared information that cannot be precompiled independently (mainly Dim statements and procedure definitions). This is why you have to restart if you change certain lines in break mode. The opcodes are compiled into p-code instructions when you compile (in the background if you have the Compile On Demand and Background Compile options set).
At run time, the p-code interpreter works through the program, decoding and executing p-code instructions. These p-code instructions are smaller than equivalent native code instructions, thus dramatically reducing the size of the executable program. But the system must load the p-code interpreter into memory in addition to the code, and it must decode each instruction.
The amount of P-Code developed application is very small compared to Native Code developed application (90% of Visual Basic 6 applications are compiled with Native Code setting -default setting in VB6-), that is one of the reason why I decided to develop VBReFormer more for Native Code than for P-Code.
The massive number of Visual Basic Native application compared to P-Code applications is probably more important due to the fact the default value in the compiler is set up to Native Code , and of course because native application are almost fast than C++ applications contrary to P-Code applications.
Qiil.io is a research project focused and highly specialized on software reverse-engineering fields. Born from an initiative of S. Bruyere, software architect and security researcher, best known for his work in the Visual Basic-x86 reverse-engineering fields. His most notable work is VBReFormer, disassembler and decompiler for Visual Basic 5 & 6 applications.
b1e95dc632