Contents

Decompilation

The following decompilation settings are available:

VB Decompiler decompilation options

The Show debug commands option is exclusively for the P-Code of classic Visual Basic and allows you to also view functions and commands without semantic load, designed for internal purposes of the compiler and debugger in Visual Basic but present in the binary file. While this may be rarely useful for analysis, it creates the most complete picture of the program under investigation. In most cases, we recommend disabling this option.

The Process If...End If blocks (Native Code) option is designed to convert conditional jumps within procedures into If...End If blocks. We recommend disabling this option only in those rare cases when the decompiler incorrectly processes a particular procedure. In all other situations, this function should always be enabled.

The Process 'Else' blocks improves the operation of the previous option. The decompiler attempts to distinguish conditional Else operators from nested If...End If blocks and GoTo operators using heuristics. Unfortunately, this functionality cannot work correctly in 100% of cases, so we have made it possible to disable this feature manually. In most cases, like the previous option, it should be enabled.

If the Fast Decompilation mode is enabled in Advanced features, the code is decompiled only when a user opens a particular procedure. This imposes several limitations on the quality of the decompiled code. In this case, the decompiler never knows the prototypes of any given procedure or function if they are not explicitly left by the compiler in the binary file. For these purposes, an heuristic analysis of the code for each procedure is used, based on which a prototype is generated. This prototype is based on assumptions about how many arguments are processed within the code and whether the considered procedure returns anything (i.e., it functions as a function).



Unfortunately, it's not always convenient to disable Fast Decompilation mode because full decompilation takes up a lot of time and doesn't allow us to change options on the fly later. And here comes to our aid the Analyze prototypes option. It allows for a surface-level heuristic analysis with Fast Decompilation enabled, relying only on machine code, which happens faster and retains the possibility of changing options on the fly in the future.

The Add Addresses option is extremely useful for analyzing code. It adds a virtual address to the left of each decompiled line, allowing you to always see in the Disassembler or HEX Editor what machine or pseudo-code corresponds to the decompiled code. Knowledge of addresses also simplifies finding the specific part of the code within binary files that needs to be changed. This option should only be disabled when you do not plan to deeply investigate the obtained code and your goal is to save the result to project to directly open it in a programming language IDE. Also, by disabling this option, you will lose the ability to combine decompiled and disassembled code through a context menu right-click Copy to disassembler. Since without knowing addresses - the decompiler won't be able to merge the code.

VB Decompiler copy to disassembler

VB Decompiler disassembled and decompiled code



Main     News     Products     Documentation     Articles     Download     Order now     About us    

Privacy policy