Protection Options

<< Click to Display Table of Contents >>

Navigation:  Code Virtualizer > Protecting an application >

Protection Options

 

HM_clip0001

 

 

Location of Protection Code

 

Code Virtualizer can insert the protection code in different locations in your application. By selecting one location or another you can hide more or less the presence of Code Virtualizer in your application.

 

Insert in new section: The PE sections of your application won't be modified and Code Virtualizer will create a new section in your application to insert the protection code.

 

Insert in last section: The protection code will be inserted in the last section in the PE header of your application.  

 

Stealth Mode: This option is the preferred one for those who fully want to hide the presence of Code Virtualizer in their applications. Basically you have to create a "free" space in your application code where the protection code will be inserted. In the "StealthMode" subfolder, you can find examples in different programming languages about how to create a free space in your own code, so your application will be ready to support the "Stealth Mode" feature. We will add support for more compilers soon.

 

 

Encrypt Strings in VM macros

 

This option will find all references to strings inside the VIRTUALIZER markers and will destroy them from your application data area. When the string is going to be accessed from inside your VIRTUALIZER marker, the protection code will decrypt it in a different location and will pass it to your application. The whole process is totally transparent for your application, making specific strings to be ready when your application references to any of them.

 

In the Protection Macros panel, you can see the ANSI and UNICODE strings that appear inside each macro.

 

We recommend that you select either ANSI or UNICODE, depending if you are using ANSI or UNICODE strings inside your VIRTUALIZER markers. If your application uses both type of strings (very rare) you should select the "ANSI+Unicode Strings" option.

 

 

Compress Virtual Machine

 

This option will compress (using the LZMA algorithm) all the Virtual Machines and virtualized code that is added by Code Virtualizer to your protected application. The protection code will be smaller on disk and your final protected application won't increase too much. The decompression of the Virtual Machine is performed the first time that any of your protection macros are called. Code Virtualizer will detect that it has its own code compressed and it will proceed with the decompression. This mean that there will be a small penalty in execution time the first time that a protection macro called.

 

NOTE: When you enable the Stealth Mode, the compression feature is not available. This is because Code Virtualizer only compress its own code (not your application code) and when the protection code is inserted in the middle of your own code, the application on disk won't be able to be reduced. Only when the protection code is inserted in the last section or in a new section, the final application size can be reduced.

 

 

Entry Point Obfuscation

 

This option produces the equivalent result as putting a VM macro in the very first instructions that are executed in your application.  This option is not compatible with all applications and you should uncheck it in case that your application does not start when protected.

 

 

Strip Relocations

 

This option will remove the relocations section in EXE files, making your protected application smaller in size.