Contents

Obfuscation Restrictions


While our obfuscation engine is robust, certain coding patterns in Visual Basic 6.0 require adjustment to be compatible with metadata stripping.

1. Design-Time Control References

If you link controls via properties at design-time using their names (string literals), the link will break after renaming.

Problematic (Design-Time Property):
`TreeView1.ImageList = "ImageList1"`

Solution:
Assign references programmatically in the `Form_Load` event:

Private Sub Form_Load()
  Set TreeView1.ImageList = ImageList1
End Sub



2. Late Binding / Dynamic Object Creation

Avoid declaring forms using `New` followed by implicit late binding if the compiler optimizes the call to a string reference.

Potential Issue:

Dim oForm as New frmMain
oForm.Show



In some compilation modes (Native Code with specific optimizations), VB6 may embed the form name as a string for this call. Since the obfuscator processes compiled data and not source code, these hidden string references may cause runtime errors if the form is renamed.

Note: DotFix NiceProtect does not perform full decompilation to Native Code due to performance constraints. Therefore, identifying these edge cases requires manual verification. This limitation applies specifically to VB6; Delphi and Free Pascal obfuscation is generally more transparent.

 

Copyright © 2001 - 2026, DotFix Software