Get Demo
  • Windows
  • MacOS
  • Linux

Frequently Asked Questions

General questions

Is there a way to encrypt strings and data arrays automatically?
In VMProtect you can hide ANSI constants and Unicode constants. All other data the code operates with remain intact. We recommend storing all confidential information encrypted and decrypt it directly before use. The unpacker itself can be virtualized.

Is there a way to protect procedures that I call from various threads in my application?
VMProtect is 100% multi-thread compatible and there are no any specific limitations for this type of protection.

Can I use VMProtect along with another protector (packer)?
Using any other packers (protectors) after a file is processed by VMProtect can render the protected application non-functional.

Should I include VMProtectSDK32.dll/VMProtectSDK64.dll into the setup package of the program?
These libraries are only used at the debug stage of the program (before protecting it). After you protect the application with VMProtect all information about usage of these DLLs is removed completely, so you don’t have to include them into the release package.

Compiler messages

What does this error mean: VMProtectMarker “ToolButton1Click.1″.0044327D: Address is used by procedure “TForm1.ToolButton1Click”?
This error means the same command at the address 0044327D is used in two procedures that are included into the list of protected objects. To solve this issue, you should exclude one of procedures (in this particular case these are VMProtectMarker “ToolButton1Click.1″ and TForm1.ToolButton1Click) from the list of protected objects.

What does this error mean: [Error] TForm1.Test.004433F4: Minimum procedure size for compilation is 5 bytes?
This error means the procedure TForm1.Test is too small and cannot be protected. To solve this issue, exclude this procedure from the list of protected objects.

What does this error mean: The “.text” section allocates space required for the new section?
The following error usually take place when drivers are protected. It means that free space between the first section of the file and service information in the header of the file is too small to create a new section To solve this problem, increase the value of the section alignment parameter in driver’s source codes and rebuild the driver completely. (For example: if you compile the driver using WDK/DDK, you should add DRIVER_ALIGNMENT=0×200 into SOURCES).