Fixed an error occurred during creating a “Relocation Table” of zero length.
Fixed an error occurred during mutation of the CALL [xxxx] command in the “Mutation” mode in DLL/SYS files.
In the Delphi example, VMProtectBegin definition now includes a command preventing optimization of VMProtectBegin (optimization could lead to a non-functional protected application).
Added the “Autosave project after compiling” option.
Fixed an error occurred while dragging files to the main window.
Fixed an error occurred when working with read-only files.
Fixed small issue during compilation in the “Ultra” mode.
A protected file now inherits attributes of the original file.
The list of protected procedures can now include strings (string assignment must be selected with markers).
The installation package includes examples of using markers in Borland C++ Builder, Delphi, MASM, Visual Basic and Visual C++.
Added an option: “Integrate to shell”.
Fixed an error occurred during mutation of IMUL, MUL, IDIV, DIV commands.
Fixed an error occurred during virtualization of multiple CASE tables following one by one.
Fixed an error occurred during virtualization of POP word/dword ptr [esp+xxxx] and IMUL reg8 commands.
Fixed an error occurred while disassembling MOVNTPS and MOVNTPD commands.
Enhanced compatibility with ASM compilers (TASM, MASM etc.).
Added a new type of compilation “Ultra” (mutation + virtualization)”.
Added compilation type selection in the add/modify procedure window.
Added search for watermarks in processes (used for searching watermarks in packed files).
Fixed an error occurred during emulation of the FILD word ptr [xxxx] command.
Each procedure can be specified a certain compilation type (“Mutation” or “Virtualization”).
In the registered version, the VM interpreter completely changes now (to prevent automatic detection of protection by signature scanners such as PEiD, RDG Packer Detector and others).
Added support for SEH for VC7-8.
Added support for markers in Visual Basic (begin and end of a fragment are marked with the following lines: Call VarPtr(“VMProtect begin”) and Call VarPtr(“VMProtect end”)).
VM interpreter now supports multi-threaded applications (no need to create a procedure to allocate memory for interpreter’s needs).
Added a possibility to insert watermarks to a protected file.
The option to allocate memory for VM interpreter’s neds is removed.
Fixed small issue.
Options “Hide constants”, “Dynamically create online commands”, “Encrypt registers on jumps”, “VM object integrity control” and others are only available for registered users now.
Added the “Master” mode.
The procedure tree now displays links.
Fixed an error occurred during compilation of projects with the “Memory allocation in the interpreter” option enabled.
Fixed small issues.
Added a possibility to check integrity of a bytecode (requires enabling the “VM object integrity control” option on).
Fixed an error occurred during emulation of CMPXCHG8b, if operands are EAX and EDX.
Now interpreter contains only those commands that will be used to execute a bytecode.
Some commands were removed from the basic logic of VM (to complicate analysis and decompiling of a bytecode).