17.02.2008 - VMProtect 1.62 released [!] The bug casing errors when the "Import Protection" feature is used has been fixed [!] The bug causing an error when an exception in the TRY/EXCEPT/END block of the "Ultra" mode is processed has been fixed (for programs in Delphi and Borland C++ Builder) [*] The import protection for SYS files has been improved [+] Each object in a project can now have its compilation options for more precise performance configuration (the individual options are configured in the project tree) [+] The "Move resources to end of file" option has been added [+] An example of using extended markers has been added (the Examples\Scripts\UseExtMarkers folder)
13.01.2008 - VMProtect 1.61 released [!] The bug causing an error during the launch of compressed files under Windows 95/98 has been fixed [!] Minor bugs have been fixed [+] Now it is possible to pass the file name via the command line in the Lite version [+] History has been added to the "Wizard" window [+] Language selection has been added to the "Wizard" window [+] The "Import Protection" option has been added (it is recommended to use it together with compressing the output file) [+] The "-we" parameter has been added in the console version (all warnings will be displayed as errors if this parameter is used) [+] The TPEResourceRecords class has been added to the script [+] The ResourceRecords property for the TPEFile class has been added to the script
01.12.2007 - VMProtect 1.6 released [!] Minor bugs have been fixed [*] Working with the same strings has been improved (now the same strings are displayed as one object containing several records) [+] Now it is possible to compress the output file [+] The TPEExportRecords class has been added to the script [+] The ExportRecords property for the TPEFile class has been added to the script [+] The OnBeforeSaveFile event has been added to the script [+] The help file is now available in Chinese (translated by Wang Xiaopeng) [+] When a MAP file is loaded, its modification date and time are checked (if the modification date and time of the MAP file differ from the modification date and time of the file being protected, the MAP file will not be loaded)
23.10.2007 - New version - VMProtect Lite VMProtect Lite is now available at the purchase page. VMProtect Lite works only in the "Wizard" mode and has no console mode.
22.10.2007 - VMProtect 1.56 released [!] The bug causing an error during the virtualization of the BT, BTC, BTR and BTS has been fixed [!] Minor bugs have been fixed [*] The list of protection options is sorted by their priority [*] The SEH support for VC8 has been improved [*] The dynamic creation of online commands has been improved [*] The control over the integrity of VM objects has been improved [+] The PREFETCH and PREFETCHW commands are now supported [+] The CompareText and ANSICompareText functions have been added to the script [+] The property Size has been added to the script for the TPEFile class [+] An example with markers used in MinGW has been added [+] The Chinese language has been added (translated by Wang Xiaopeng) [+] Now it is possible to search with the "*" and "?" wildcards in the New Procedure dialog box [+] Information about the size of the output file is now displayed in the compiler messages
12.10.2007 - New payment type - Plimus The new payment type Plimus has been added on purchase order page. Plimus - an American electronic payment system for sending payments through credit cards, PayPal, etc. You can get detailed information about this system at www.plimus.com
29.07.2007 - VMProtect 1.55 released [!] The bug causing an error while working with a file having the unaligned ImageSize value has been fixed [!] The bug causing an error while determining the beginning of the TRY block for programs written in Delphi has been fixed [!] The bug causing an error while processing mixed code from Discardable and NonDiscardable sections in SYS files has been fixed [!] The bug causing an error during the virtualization of 64-bit DLL/SYS files has been fixed [*] The "Encrypt registers on exit of VM" option has been restored [+] The TIniFile class has been added to the script [+] Additional properties and methods have been added to the script for the TPEFile class [+] The calculator for estimating address offsets in a file has been added in the GUI version [+] The Italian language has been added (translated by Gabriele Lanza)
30.06.2007 - VMProtect 1.54 released [!] The bug causing an error during the mutation of the PUSH ESP has been fixed [!] The bug causing an error during the virtualization of the FLDCW [ESP+xxxx] command has been fixed [!] The bug causing an error during the obfuscation of bytecode has been fixed [*] Improvements in the GUI [+] The German and Spanish languages have been added [+] Scripts are now supported [+] The parameter for specifying the name of the script file has been added in the console version
27.04.2007 - VMProtect 1.53 released [!] The bugs causing errors during the virtualization of code in DLL/SYS files have been fixed [*] Improvements in code virtualization [*] Moving percentage numbers have been removed in the console version when the output is redirected to a file [+] Now it is possible to insert markers for x86-64 [+] Now it is possible to create folders in the project [+] The parameter for specifying the name of the project file has been added in the console version
16.03.2007 - VMProtect 1.52 released [!] Fixed a bug occurring when mutating the commands CMOVxx, CMPXCHG and CMPXCHG8B [!] Fixed a bug occurring when mutating the command LEA ESP, [ESP+xxxx] [*] Added the commands RCL and RCR into the basic VM logics [+] Added the support of x86-64 [+] Now you can specify the name of the output file in the GUI version on the "Options" tab [+] Added the help system both in English and Russian
03.02.2007 - VMProtect 1.51 released [!] The bug causing an error while creating a zero-length "Relocation Table" has been fixed [!] The bug causing an error occurring when the CALL [xxxx] command is mutating in the "Mutation" mode in DLL/SYS files has been fixed [!] In the Delphi example, the command preventing VMProtectBegin from optimization has been added to the VMProtectBegin statement (the optimization of VMProtectBegin could prevent the protected file from being run) [+] The "Autosave project after compilation" option has been added
19.01.2007 - VMProtect 1.5 released [!] The bug causing an error when files were dragged and dropped to the main window has been fixed [!] The bug causing an error while working with files having the "Read only" attribute has been fixed [!] Minor bugs during compilation in the "Ultra" mode have bee fixed [*] Now the protected file has exactly the same attributes as the original file [+] Strings can now be added to the list of protected procedures (string assigning must be marked with markers) [+] Now the distribution package has examples with markers in Borland C++ Builder, Delphi, MASM, Visual Basic and Visual C++ [+] The option "Integration into shell" has been added
01.11.2006 - VMProtect 1.4 released [!] The bug causing an error during the mutation of the IMUL, MUL, IDIV, DIV commands has been fixed [!] The bug causing an error during the virtualization of several CASE tables coming one after another has been fixed [!] The bug causing an error during the virtualization of the POP word/dword ptr [esp+xxxx] and IMUL reg8 commands has been fixed [!] The bug causing an error while disassembling the MOVNTPS and MOVNTPD commands has been fixed [+] New compilation type has been added: "Ultra (mutation + virtualization)" [+] The compilation type option has been added to the dialog box for adding/editing a procedure [+] Searching for watermarks in processes has been added (it is used to search for watermarks in packed files) [*] Compatibility with ASM compilers has been improved (TASM, MASM, etc.)
23.09.2006 - VMProtect 1.3 released [!] The bug causing an error while emulating the command FILD word ptr [xxxx] has been fixed [+] Now it is possible to specify the compilation type for each procedure ("Mutation" or "Virtualization")
19.07.2006 - VMProtect 1.25 released [+] The support of SEH for VC7-8 has been added [+] The support of markers in Visual Basic has been added (the start and the end of the section are marked with Basic insertions - Call VarPtr("VMProtect begin") and Call VarPtr("VMProtect end")) [*] The VM interpreter is now completely transformed in the registered version (it prevents protection from being automatically determined by such signature scanners as PEiD, RDG Packer Detector, etc.)
01.06.2006 - VMProtect 1.24 released [+] Now it is possible to embed watermarks into the protected file [*] Now the VM interpreter completely supports multithreaded applications (now you do not have to create the procedure of memory allocation for the interpreter) [-] The option for enabling the function of memory allocation for the interpreter has been removed
10.05.2006 - VMProtect 1.23 released [!] Minor improvements have been made [+] The "Wizard" mode has been added [+] References are now shown in the procedure tree [*] The options "Hide constants", "Create online commands dynamically", "Encrypt registers on jumps", "Check the integrity of VM objects" and much more are now available for registered users only
01.04.2006 - VMProtect 1.22.2 released [!] The bug causing errors while compiling projects with the "Allocate memory for the interpreter" option enabled has been fixed
28.03.2006 - VMProtect 1.22 released [!] Minor bugs have been fixed [+] Now it is possible to check the integrity of the bytecode (with the "Check the integrity of the VM objects" enabled)
21.02.2006 - VMProtect 1.21 released [!] The bug causing errors while emulating CMPXCHG8b if the EAX and EDX registers are present in operands has been fixed [+] The interpreter contains only those commands that will take part in executing the bytecode [-] Some commands have been removed from the basic VM logic (it makes it more difficult to analyze and decompile the bytecode)
08.01.2006 - VMProtect 1.2 released [!] The bug causing the error while moving the Bound Import has been fixed [+] Now it is possible to insert parts of code marked with markers (the start and the end of the section are marked with assembler insertions - "db $EB,$10,'VMProtect begin',0" and "db $EB,$0E,'VMProtect end',0") [+] Now it is possible to include exported functions in the project [-] The "Encrypt bytecode" option has been removed (now bytecode is always encrypted)
08.12.2005 - VMProtect 1.1 released [!] The bugs causing errors while emulating SBB (the incorrect status of some flags), emulating CMOVxx, CMPXCHG and CMPXCHG8b (in those cases when addresses with the ESP register or a DWORD value were used as the second argument) [+] Now SEH in VB6 is supported (native) [+] MAP files generated by IDA are now supported [+] Now it is possible to add procedures in the batch mode [+] Now references to commands are shown right in the procedure listing [+] The "Encrypt registers on jumps" option has been added
17.10.2005 - VMProtect 1.09 released [*] The process of detecting the procedure end while disassembling loops has been improved [+] For compatibility with UPX, it is possible to clear the Sharable flag for Writable sections (when the old table of relocks is used for VM needs)
04.10.2005 - VMProtect 1.08 released [*] The rate of disassembling large parts of code has been increased [*] The mechanism of bytecode interpreter metamorphism has been improved
18.08.2005 - VMProtect 1.07 released [!] The bugs causing errors while working with PE files (when the virtual size of code sections equals zero); obfuscating FPU commands (errors led to incorrect results); disassembling (the CWD command was recognized instead of CWDE); emulating the ROL and ROR commands (if the argument had the size of 1 byte) [+] Now the group of commands SSE2 is supported
01.08.2005 - VMProtect 1.06 released [!] The bugs causing the incorrect status of the A flag after emulating the SUB, CMP, DEC, NEG, CMPXCHG, SCAS and CMPS commands has been fixed. [!] The bug causing an error with an "unaligned" file has been fixed [+] Now the BSF, BSR and CMPXCHG8b instructions are supported [+] Now you can specify the procedure of memory allocation for the VM interpreter for multithreaded applications (the memory allocation procedure must be defined as fastcall)
14.06.2005 - VMProtect 1.05 released [+] Now the FUCOMPP and FCMOVxx instructions are supported [+] Now string types (ANSI/Unicode/Pascal) and comments for the fields of the structures created by compilers are shown when you view parts of code [+] The procedure of bytecode interpreter metamorphism has been added [+] New compilation options have been added: "Encrypt bytecode" and "Remove configurable elements (only for EXE files)" [-] The "Obfuscate bytecode" option has been removed (now bytecode is always obfuscated)
14.05.2005 - VMProtect 1.04 released [!] The bug causing an error while detecting SEH handlers for C++ has been fixed [*] The bytecode obfuscator has been completely rewritten [+] Now configurable elements are highlighted when you view parts of code
11.04.2005 - VMProtect 1.03 released [+] Now "free space" in the original parts of code is used to store bytecode [+] Now "short" strings are recognized in the pascal format (the first byte is the string length)
25.03.2005 - VMProtect 1.02 released [!] The bug causing errors in executing online commands in DLL/SYS has been fixed [*] The algorithm of calculating the bytecode checksum has been changed [+] The "Check the integrity of the VM interpreter" option has been added (it also serves as an anti-debugging mechanism when the debugger uses INT 03 as stop points while debugging the interpreter). [+] The "old" table of configurable elements is used to store bytecode
17.03.2005 - VMProtect 1.01 released [!] The bug causing an error while creating files with configurable elements (the error occurred when DLL/SYS files ran under Windows 95/98/Me) has been fixed [!] Minor bugs in the disassembler have been fixed [+] Now the instructions F2XM1, FABS, FCLEX, FCOS, FDECSTP, FINCSTP, FINIT, FLDCW, FLDLN2, FLDLG2, FPREM, FREM1, FPTAN, FRNDINT, FSIN, FSTCW, FTST, FYL2X, FPATAN, FLDZ, FISTP are supported [+] Now MAP files from Borland C Builder are supported [+] Now you can select the language of the interface and messages (the Russian and English languages are available)
09.03.2005 - VMProtect 1.0 released [!] Minor bugs related to the interface have been fixed [+] Now the CMOV and CMPXCHG instructions are supported
02.03.2005 - VMProtect 0.97 released [!] Minor bugs related to the interface have been fixed [+] Now Virtual Pascal is supported
01.03.2005 - VMProtect 0.96 released [!] Bugs in the compiler have been fixed (incorrect work with the C flag while compiling the NEG and SBB instructions; more correct POPF processing; the incorrect check of the bytecode CRC when processing external conditional jumps) [!] Bugs in the VM interpreter related to bytecode obfuscation have been fixed [+] Processing MAP files generated by C/C++ compilers has been improved (the names of procedures contain information about arguments)
22.02.2005 - VMProtect 0.94 released [!] A lot of bugs have been fixed