VB Decompiler, armed with a unique obfuscation technology, effectively conceals data left behind by the compiler in our research on decompiling Visual Basic 5.0 and 6.0 applications. Modern programming languages often store significant amounts of metadata and debugging information within compiled files, making it easier for crackers to locate desired functions within your program. To counter this threat, we've developed an obfuscator specifically designed for Visual Basic applications.
The Obfuscation Process: A Closer Look
The obfuscator works by breaking down the entire program into its constituent parts, including forms, modules, classes, and controls like buttons and text fields. Each form is then dissected into individual controls with associated events. Next, information about functions and procedures, as well as events tied to each object in the program, are gathered. During this process, the obfuscator checks for dependencies between objects and synchronously alters their names to make it challenging to determine which function belongs to a particular module or class.
As a result, finding specific forms like frmTrial or frmRegistration within the program becomes significantly more difficult.
Limits of Visual Basic 5.0 / 6.0 Application Obfuscation: Key Considerations
The algorithm employed by the obfuscator is complex and designed to analyze object dependencies, but it still doesn't support everything. Consequently, in some cases, you'll need to prepare your program beforehand for the obfuscation process. The points discussed below apply exclusively to the obfuscation of Visual Basic 5.0 / 6.0 applications.
1. The obfuscator does not support design-time references to other objects, which can lead to issues during runtime.
For instance, consider a scenario where you have a TreeView control that relies on an associated ImageList. If the name of this ImageList object is hardcoded into the properties of your TreeView, any attempts to obfuscate will result in errors, as the original reference remains intact. This limitation also applies to database-related components, such as DataSets