VMProtect/help/en/history.htm

820 lines
41 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="Stylesheet" type="text/css" href="default.css" />
<meta http-equiv="Content-Type" content=
"text/html; charset=utf-8" />
<title>History of changes</title>
</head>
<body>
<h1>History of changes</h1>
<h3>Version 3.5</h3>
<p>[!] .NET: Many bugs are fixed<br />
[!] ELF: Fixed a bug that occurred inside VMProtectGetCurrentHWID while getting HDD information<br />
[+] .NET: Added support of .NET Core (3.0+) and .NET Standard (2.1+)<br />
[+] .NET: Added import protection<br />
[+] .NET: Added resources protection<br />
[+] .NET: Added support of mixed assemblies<br />
[*] Mach-O: Improved support of sections with types S_THREAD_LOCAL_VARIABLES and S_THREAD_LOCAL_REGULAR<br />
[*] Mach-O: Improved support of Objective-C<br />
[*] ELF: Improved support of relocations with type R_386_PC32<br />
[*] PE: Improved antidebug<br />
</p>
<h3>Version 3.4</h3>
<p>[!] Fixed a bug that occurred during virtualization of BT [m16], POP [m64]<br />
[+] Added support of .NET applications<br />
[+] Added disassembling PMULLD<br />
[+] PE: Added support of COFF symbols<br />
[*] ELF: Improved disassembling of SWITCH<br />
[*] ELF: Improved support of relocations with type R_386_PC32<br />
[*] PE: Improved exception handling<br />
[*] PE: Improved support of Windows Server 2016 Datacenter<br />
</p>
<h3>Version 3.3</h3>
<p>[+] PE: Added support of "Control Flow Guard"<br />
[+] PE: Added support of PDB files for loading symbols<br />
[+] Mach-O: Added support of OS X 10.13 and later<br />
[+] ELF: Added support of statically linked libstdc++.so<br />
[+] ELF: Added support of CentOS 5 and CentOS 6<br />
[+] ELF: Added support of TLS segments<br />
[+] ELF: Added support of HTTPS for VMProtectActivateLicense<br />
[*] PE: Improved exception handling for x64 applications<br />
[*] PE: Improved detection of virtualization tools under the Hyper-V role<br />
[*] PE: Improved demagling of MSVC symbols<br />
[*] Mach-O: Improved exception handling<br />
[*] Mach-O: Improved support of Objective-C<br />
[*] ELF: Fixed a bug that occurred when the "Pack the Output File" option was used<br />
</p>
<h3>Version 3.2</h3>
<p>[!] PE: Fixed an error that occurred in VMProtectIsValidImageCRC in protected driver<br />
[!] Fixed an error that occurred during virtualization of XOR with relocations<br />
[*] PE: Improved packing of sections with the TLS directory<br />
[*] PE: Improved antidebug<br />
[*] PE: The Taggant System has been removed<br />
[*] Accelerated unpacking when the "<a href=
"project_options.htm#PackOutputFile">Packing output file</a>" option was used<br />
[+] Added support of ELF format<br />
[+] Added disassembling of AVX commands<br />
</p>
<h3>Version 3.1</h3>
<p>[!] Fixed an error that occurred during disassembling of MOVUPS with REX prefix 0x41<br />
[!] Fixed an error that occurred during virtualization of XLAT, FSIN and POPAD<br />
[*] Improved exceptions handling<br />
[*] Improved VM architecture<br />
[*] Improved checking the integrity of a file on disk when the "<a href=
"project_options.htm#MemoryProtection">Memory protection</a>" option was used<br />
[*] Improved virtualization of FSTENV, FSTCW, FSAVE and FSTSW<br />
[*] PE: VMProtectActivateLicense now works via WinHTTP and uses IE proxy settings by default<br />
[*] PE: VMProtectGetCurrentHWID has been improved for kernel drivers<br />
[*] PE: Improved support of Delphi 6 when the "<a href=
"project_options.htm#ImportProtection">Import protection</a>" option was used<br />
[*] PE: Improved antidebug<br />
[+] Added virtualization of ADD, AND, SUB, XOR, OR with LOCK prefix<br />
[+] Added virtualization of CQO<br />
[+] Added disassembling PINSRB, PINSRD, PINSRQ, PMINSD, PMINUW, PMINUD, PMAXSB, PMAXSD, PMAXUW and PMAXUD<br />
[+] Mach-O: Added support of section "__unwind_info"<br />
[+] Mach-O: Added support of LC_LOAD_WEAK_DYLIB<br />
[+] Mach-O: Added support of Delphi Berlin<br />
[+] PE: Added support of Windows 10 for kernel drivers<br />
[+] PE: Now the "Rich Header" is deleted when the "<a href=
"project_options.htm#Additional">Strip debug information</a>" option was used<br />
[+] Ultimate: Functionality of "<a href="project_files.htm">Files</a>" has been enhanced. Now you can create folders and use symbols ".." for indication of the parent directory<br />
[+] GUI: At displaying of protected ANSI strings the code page from Windows settings is used now<br />
[+] LUA: Usage of functions from external DLLs has been added<br />
</p>
<h3>Version 3.0</h3>
<p>[*] PE: Added support for exceptions in x64 code<br />
[*] Mach-O: Added support for <a href="sdk_functions.htm">SDK functions</a><br />
[*] Ultimate: Added support for <a href="manager/usage/api.htm">licensing functions</a> for drivers and applications written on VB6<br />
[*] Ultimate: Functionality of <a href="project_files.htm">DLL Box</a> has been enhanced. Now the protected application can envelope any files
including ActiveX servers with optional automatic registration in the virtual registry.<br />
[*] Virtual Box detection has been improved<br />
[*] Script engine changed to LUA<br />
[*] New VM architecture<br />
[+] A new function <a href="sdk_functions.htm#VMProtectIsProtected">VMProtectIsProtected</a> is added to the SDK<br />
</p>
<h3>Version 2.13</h3>
<p>[!] PE: Added support for Delay Import<br />
[!] PE: Improved compatibility with VS2012<br />
[!] PE: Improved compatibility with Embarcadero RAD Studio XE3<br />
[!] PE: Improved compatibility with MinGW<br />
[!] Ultimate: Improved compatibility of DLL Box with Windows 8<br />
[+] WebLM: Added support for mbstring.func_overload = 2<br />
[+] WebLM: In the activation code a new field "Expiry date" has been added.
(Now VMProtectActivateLicense can return ACTIVATION_EXPIRED if the current date exceeds the expiry date)<br />
[+] WebLM: Fields "Expiry date" and "Maximum build date" now contain the "days since purchase" value<br /></p>
<h3>Version 2.12</h3>
<p>[!] PE: Fixed bugs in x64 applications<br />
[!] PE: Fixed an error that occurred if an application had the IMAGE_DLLCHARACTERISTICS_NX_COMPAT flag<br />
[+] PE: Added support for Windows 8<br />
[+] WebLM: Added Russian and Chinese language<br /></p>
<h3>Version 2.11</h3>
<p>[!] Fixed a bug during <a href=
"project_options.htm#PackOutputFile">packing</a> in х64
applications<br />
[!] PE: Fixed a bug that occurred when the
"<a href="project_options.htm#ImportProtection">Import protection</a>" option was used<br />
[!] PE: Fixed a bug emerging when a TLS section with relocation tables was processed<br />
[+] Ultimate: Added <a href=
"manager/activation.htm">activation/deactivation</a><br />
[+] Mach-O: Added <a href=
"project_options.htm#PackOutputFile">packing</a><br />
[*] PE: Support for DriverVerifier<br />
[*] PE: Improved support for SEH for MSVC<br />
[*] Mach-O: Improved support for IndirectSymbols<br /></p>
<h3>Version 2.10</h3>
<p>[!] Fixed a bug that occurred when the
"<a href="project_options.htm#ResourceProtection">Resource protection</a>" option was used<br />
[!] Fixed a bug that occurred when the
"<a href="project_options.htm#ImportProtection">Import protection</a>" option was used<br />
[!] Fixed a bug that occurred when x64 drivers without relocation tables were protected<br />
[+] Added support for Max OS X executables (Mach-O format)<br />
[+] Added support for HLT command<br />
[+] New API is added to SDK - <a href=
"sdk_functions.htm#VMProtectFreeString">VMProtectFreeString</a><br />
[*] Improved identification of markers and strings marked with <a href=
"sdk_functions.htm#VMProtectDecryptStringA">VMProtectDecryptStringA</a>/<a href="sdk_functions.htm#VMProtectDecryptStringW">VMProtectDecryptStringW</a><br />
[*] Now you can use relative paths in output file name and license parameters<br />
[*] Improved support for SEH for Delphi<br />
[*] SenseLock Edition: Added the "<a href=
"project_options.htm#ResourceProtection">Resource protection</a>" option<br />
[*] SenseLock Edition: A <a href=
"manager/licenses.htm">license manager</a> is added to the GUI version<br />
[*] SenseLock Edition: programming of keys is added to the GUI version<br />
[*] Licenses in the license manager can now be copied and pasted to/from the clipboard<br /></p>
<h3>Version 2.09</h3>
<p>[!] Fixed a bug that occurred when <a href=
"project_options.htm#DebuggerDetection">a debugger was detected</a>
under Windows 2000<br />
[!] Fixed a bug that occurred while disassembling PMULHUW and LDMXCSR commands<br />
[!] Fixed a bug that occurred when <a href=
"project_options.htm#MemoryProtection">memory protection</a> was used(file integrity wasn't checked)<br />
[!] Ultimate: Fixed a bug that occurred when running protected files under Windows 2000 (this required
EncodePointer/DecodePointer functions from kernel32.dll)<br />
[*] Improved virtualization of exception handlers for Visual
C<br />
[*] <a href="project_options.htm#ResourceProtection">Resource protection</a> is now available in Lite and Professional versions<br />
[*] Added support for EnumResourceTypes, EnumResourceNames and
EnumResourceLanguages when using <a href=
"project_options.htm#ResourceProtection">resource protection</a> (available only when called from the main module)<br />
[+] Added support for exceptions for Borland C Builder<br />
[+] Ultimate: Improved performance of <a href=
"manager/usage/api.htm#VMProtectGetSerialNumberState">VMProtectGetSerialNumberState</a>
and <a href=
"manager/usage/api.htm#VMProtectGetSerialNumberData">VMProtectGetSerialNumberData</a> functions<br />
[+] The script for <a href=
"script_classes.htm#TLicenseManager">TLicenseManager</a> now includes the
<a href=
"script_classes.htm#TLicenseManager.Save">Save</a> method<br />
[-] The "Move resources to the end of the file" option is removed. The resource section is always the last one now.<br /></p>
<h3>Version 2.08</h3>
<p>[!] Fixed a bug that occurred when assembling the TEST [XXXX], REG command<br />
[!] Fixed a bug that occurred while disassembling х64 commands with the 0x67 prefix<br />
[*] Improved support for files with small values of
SectionAlignment<br />
[*] Improved placement of markers and strings for Intel
Compiler 12 and Lazarus<br />
[*] Improved <a href="project_options.htm#ImportProtection">import protection
</a><br />
[*] Ultimate: Now you can load project files with licensing parameters<br />
[+] Ultimate: Added <a href=
"project_options.htm#ResourceProtection">resource protection</a><br />
[+] Ultimate: The script now includes classes: <a href=
"script_classes.htm#TLicense">TLicense</a> and <a href=
"script_classes.htm#TLicenseManager">TLicenseManager</a><br /></p>
<h3>Version 2.07</h3>
<p>[!] Fixed an error occurred when working with the <a href=
"manager/licenses.htm">license manager</a> if Windows had other system language than English<br />
[+] In the expert mode you can now change the default messages: "Debugger is detected", "Virtualization tools are detected", "File is corrupted" and "Serial number is required"
<br />
[+] The script class <a href=
"script_classes.htm#TVMProtector">TVMProtector</a> now has the <a href=
"script_classes.htm#TVMProtector.Messages">Messages</a> property<br />
[*] Improved compatibility of <a href=
"project_options.htm#MemoryProtection">memory protection</a> with some antiviruses<br /></p>
<h3>Version 2.06</h3>
<p>[!] Fixed a bug with marker name identification for MinGW<br />
[!] Fixed an error occurred during <a href=
"project_options.htm#ImportProtection">import protection</a> in х64 files
<br />
[!] Fixed an error occurred during virtualization of FILD WORD
PTR [XXXX]<br />
[!] Fixed an error occurred while disassembling PSRLW<br />
[!] Fixed an error occurred in <a href=
"project_files.htm">DLL Box</a> when the antivirus was active<br />
[*] Project file is now saved as XML<br />
[*] Script is now stored in a project file<br />
[*] Ultimate: <a href="manager/licenses.htm">License manager</a> is now in the GUI version<br />
[*] Ultimate: Significantly sped up execution of code <a href=
"project_functions.htm#LockToKey">locked to a serial number</a><br />
[+] Added support for MAP files for MinGW<br />
[+] Added support for JCLDEBUG<br />
[+] The script class <a href=
"script_classes.htm#TPEDirectory">TPEDirectory</a> now has the
Clear method<br />
[+] The script class <a href=
"script_classes.htm#TVMProcedure">TVMProcedure</a> now has properties:
<a href=
"script_classes.htm#TVMProcedure.InputSize">InputSize</a> and
<a href=
"script_classes.htm#TVMProcedure.OutputSize">OutputSize</a><br />
[+] Ultimate: New API are added to SDK - <a href=
"sdk_functions.htm#VMProtectBeginVirtualizationLockByKey">VMProtectBeginVirtualizationLockByKey</a>
and <a href=
"sdk_functions.htm#VMProtectBeginUltraLockByKey">VMProtectBeginUltraLockByKey</a><br />
</p>
<h3>Version 2.05</h3>
<p>[!] Fixed errors with line identification for MinGW programs<br />
[!] Fixed the "Out of system resources" error occurred when many procedures were added to the project<br />
[!] Fixed an error occurred in the console version during output of strings<br />
[*] MAP file date is now taken from its contents<br />
[+] Ultimate: Added examples on working with the <a href=
"manager/index.htm">licensing system</a> (on MSVC and
Delphi)<br />
[+] Ultimate: Added source codes of the <a href=
"manager/keygen/keygen_dll.htm">serial number generator</a>
on MSVC<br />
[+] Ultimate: Added <a href="project_files.htm">DLL Box</a>
(available only for EXE files)<br />
[+] Ultimate: A new class <a href=
"script_classes.htm#TInternalDLLs">TInternalDLLs</a> is added to the script<br />
[+] Ultimate: In the script class <a href=
"script_classes.htm#TVMProtector">TVMProtector</a> a new property is added: <a href=
"script_classes.htm#TVMProtector.InternalDlls">InternalDlls</a><br />
[+] In the script class <a href=
"script_classes.htm#TMapRecord">TMapRecord</a> a new property is added:
<a href=
"script_classes.htm#TMapRecord.SegmentName">SegmentName</a><br />
[+] In the script class <a href=
"script_classes.htm#TIntelRecord">TIntelRecord</a> a new property is added: <a href=
"script_classes.htm#TIntelRecord.Operands">Operands</a><br />
[+] Czech language is added<br /></p>
<h3>Version 2.04</h3>
<p>[!] Fixed an error occurred during obfuscation of FDIVR
[ESP+XXXX]<br />
[!] Fixed an error occurred during obfuscation of SWITCH in x64 applications
<br />
[*] When using the "<a href=
"project_options.htm#MemoryProtection">Memory protection</a>" option, a file is checked for integrity now<br />
[*] Ultimate: Better licensing module integration to the protected program<br />
[+] Added support for files with overlay<br />
[+] Ultimate: Added an example of <a href=
"manager/keygen/keygen_net.htm">C# serial number generator</a><br />
[+] Ultimate: <a href="manager/licenses.htm">License manager</a> now has export of product parameters for a generator on C#<br />
[+] Ultimate: The <a href="mode_console.htm">console version</a>
now has the "-lf" parameter to specify a file with licensing parameters<br />
[+] Added French help file<br /></p>
<h3>Version 2.03</h3>
<p>[!] Fixed an error occurred when using <a href=
"project_options.htm#ImportProtection">import protection</a> in SYS files (base address of hal.dll wasn't determined under Windows 7)<br />
[!] Fixed an error occurred during obfuscation of command using CRx registers in SYS files<br />
[!] Fixed small issues<br />
[*] Improvements in <a href="manager/index.htm">licensing system</a> of the Ultimate version<br />
[+] French language is added<br /></p>
<h3>Version 2.02</h3>
<p>[!] An error is fixed in SenseLock Edition occurred when several programs using different licenses on the key run simultaneously
(users of SenseLock Edition should update master key firmware)<br />
[!] Fixed EntryPoint disassembly error in Delphi programs<br />
[!] Fixed small issues<br />
[*] Important improvements in <a href="manager/index.htm">licensing system</a> of the Ultimate version<br />
[*] SenseLock Edition now uses the licensing system of the Ultimate version (users of SenseLock Edition should update master key firmware)<br />
[*] Improved detection of strings marked with <a href=
"sdk_functions.htm#VMProtectDecryptStringA">VMProtectDecryptStringA</a>/<a href="sdk_functions.htm#VMProtectDecryptStringW">VMProtectDecryptStringW</a><br />
[+] GUI now supports Unicode<br />
[+] Traditional Chinese is added<br /></p>
<h3>Version 2.01</h3>
<p>[!] Fixed small issues in the installer, the <a href=
"manager/licenses.htm">license manager</a> and <a href=
"sdk_functions.htm">SDK</a><br />
[*] VMProtect is registered with its own
<a href="manager/index.htm">licensing system now</a><br />
[+] Added Chinese Simplified<br /></p>
<h3>Version 2.0</h3>
<p>[!] Fixed disassembly and virtualization bugs of CALL FWORD PTR [XXXX] and JMP FWORD PTR [XXXX] commands<br />
[!] An error is fixed in SenseLock Edition occurred when the serial number is asked after the standard PIN of a user has changed<br />
[!] Fixed an error occurred during virtualization of SWITCH in х64 applications<br />
[!] Fixed an error occurred while disassembling commands:
ROL, ROR, RCL, RCR, SHL, SHR, SAL and SAR, with the REX prefix in х64 applications<br />
[!] Fixed an error occurred during virtualization of the CMOVxx command<br />
[!] Fixed small issues<br />
[*] The help file in Russian is updated<br />
[*] The help file in English is updated<br />
[+] Added the <a href="manager/index.htm">licensing system</a> (available only in Ultimate version)<br />
[+] New API are added to the SDK - <a href=
"sdk_functions.htm#VMProtectDecryptStringA">VMProtectDecryptStringA</a>
and <a href=
"sdk_functions.htm#VMProtectDecryptStringW">VMProtectDecryptStringW</a><br />
[+] The script class <a href=
"script_classes.htm#TVMProcedure">TVMProcedure</a> now has a new property
<a href=
"script_classes.htm#TVMProcedure.CompilationOptions">CompilationOptions</a><br />
[+] The script class <a href=
"script_classes.htm#TVMProcedure">TVMProcedure</a> now has properties
<a href=
"script_classes.htm#TVMProcedure.SELicense">SELicense</a> and
<a href="script_classes.htm#TVMProcedure.SEVersion">SEVersion</a>
(available in SenseLock Edition only)<br />
[+] The script class <a href=
"script_classes.htm#TVMProtector">TVMProtector</a> has new properties added: <a href=
"script_classes.htm#TVMProtector.VMSectionName">VMSectionName</a>
and <a href=
"script_classes.htm#TVMProtector.VMExecutorCount">VMExecutorCount</a><br />
[+] The script class <a href=
"script_classes.htm#TVMProtector">TVMProtector</a> has new properties added:
<a href=
"script_classes.htm#TVMProtector.SEMasterPassword">SEMasterPassword</a>,
<a href=
"script_classes.htm#TVMProtector.SEUserPIN">SEUserPIN</a>,
<a href="script_classes.htm#TVMProtector.SEKeyID">SEKeyID</a>,
<a href="script_classes.htm#TVMProtector.SELicense">SELicense</a>
and <a href=
"script_classes.htm#TVMProtector.SEVersion">SEVersion</a>
(available in SenseLock Edition only)<br />
[-] The option "Create online commands dynamically" is removed<br /></p>
<h3>Version 1.81</h3>
<p>[!] Fixed an error occurred during execution of mutated code on Pentium 4 processors<br />
[!] Fixed an error occurred during execution of virtualized code on some Athlon processors<br />
[!] Fixed errors occurred during disassembly and virtualization of exception handler structures with an exception filter
(for program on Delphi and Borland
C++ Builder)<br />
[!] Fixed an error occurred when using <a href=
"project_options.htm#VirtualMachines">several VM</a> in 64-bit files<br />
[!] Fixed small issues<br />
[*] Enhanced detection of <a href=
"use_markers.htm">marker</a> names (for programs on Visual C)<br />
[*] Significantly reduced memory consumption during compilation<br />
[*] The "HTML" resource is not packed now<br />
[*] The help file in Russian is updated<br />
[+] Added wildcard search of procedures in the "Master" mode<br />
[+] Added <a href="project_options.htm#PackOutputFile">new packing mode</a> featuring higher compression rate<br />
[+] Added support for files with TLS callbacks<br />
[+] New API is added to the SDK - <a href=
"sdk_functions.htm#VMProtectIsValidImageCRC">VMProtectIsValidImageCRC</a><br />
</p>
<h3>Version 1.8</h3>
<p>[!] Fixed errors occurred during <a href=
"project_options.htm#ImportProtection">import protection</a> in SYS files<br />
[!] Fixed errors occurred during <a href=
"project_options.htm#MemoryProtection">memory protection</a> in
DLL/SYS files<br />
[!] Fixed errors occurred when using <a href=
"project_options.htm#VirtualMachines">multiple VM</a> in
DLL/SYS-files<br />
[!] Fixed an error occurred during mutation of the code with exception handlers<br />
[!] Fixed an error occurred when <a href=
"project_options.htm#MemoryProtection">memory protection</a> and
<a href="project_options.htm#Watermarks">watermarks</a> were used simultaneously<br />
[!] Fixed small bugs<br />
[*] Improved detection of references to <a href=
"use_markers.htm">marked</a> strings (you don't have to mark every reference to a protected string now)<br />
[*] Improved <a href="project_options.htm#ImportProtection">import protection</a><br />
[*] Improved <a href=
"project_options.htm#DebuggerDetection">debugger detection</a><br />
[*] The help file in Russian is updated<br />
[+] The GUI version now allows saving project files under different names<br />
[+] Now you can open project files<br />
[+] Added <a href=
"project_options.htm#VirtualizationToolsDetection">Sandboxie detection</a><br />
[+] Added support for files compiled with the /SAFESEH key<br />
[+] Added support for CodeGear 2009<br />
[+] Now you can have named markers (when <a href=
"sdk_functions.htm#VMProtectBegin">VMProtectBegin</a>/<a href=
"sdk_functions.htm#VMProtectBeginMutation">VMProtectBeginMutation</a>/<a href="sdk_functions.htm#VMProtectBeginVirtualization">VMProtectBeginVirtualization</a>/<a href="sdk_functions.htm#VMProtectBeginUltra">VMProtectBeginUltra</a>
from VMProtectSDKxx.dll/VMProtectDDKxx.sys are used)<br />
[+] New API are added to the SDK (<a href=
"sdk_functions.htm#VMProtectIsDebuggerPresent">VMProtectIsDebuggerPresent</a>
and <a href=
"sdk_functions.htm#VMProtectIsVirtualMachinePresent">VMProtectIsVirtualMachinePresent</a>)<br />
[+] A new utility was added to SenseLock Edition - "Remote update and licensing system"<br />
[+] SenseLock Edition now has key id lock<br /></p>
<h3>Version 1.7</h3>
<p>[!] Sections with SHAREABLE+WRITABLE flags are not packed now<br />
[!] Fixed small issues<br />
[*] Improved <a href="project_options.htm#ImportProtection">import protection</a> for SYS files<br />
[*] Improved <a href=
"project_options.htm#PackOutputFile">packing</a> of SYS files
(packed sections are not flagged with WRITABLE any more)<br />
[*] Improved <a href=
"project_options.htm#DebuggerDetection">debugger detection</a><br />
[+] Added the "<a href=
"project_options.htm#MemoryProtection">Memory protection</a>" option (this option prevent changes to be made to memory while the application is running)<br />
[+] Added the "<a href=
"project_options.htm#VirtualizationToolsDetection">Detect virtualization tools (VMware/Virtual PC)</a>" option<br />
[+] The script class <a href=
"script_classes.htm#TPEFile">TPEFile</a> now has a property
<a href=
"script_classes.htm#TPEFile.EntryPoint">EntryPoint</a><br /></p>
<h3>Version 1.65</h3>
<p>[!] Fixed small issues<br />
[*] Improved <a href="project_options.htm#ImportProtection">import protection</a><br />
[*] Improved <a href=
"project_options.htm#DebuggerDetection">debugger detection
</a><br />
[+] Added identification of unpaired <a href=
"use_markers.htm">markers</a> (unpaired markers are available in the general list of objects)<br />
[+] Added markers to apply a pre-defined compilation type:
VMProtectBeginVirtualization, VMProtectBeginMutation and
VMProtectBeginUltra<br />
[+] Added Chinese Traditional language<br /></p>
<h3>Version 1.64</h3>
<p>[!] Fixed a bug occurred during execution of a <a href=
"project_options.htm#PackOutputFile">packed file</a>,
if it had "TYPELIB", "REGISTRY" and "MUI" resources<br />
[!] Fixed the R6002 error occurred during execution of a packed file (for programs written on Visual C)<br />
[!] Fixed a bug occurred when the
"<a href="project_options.htm#ImportProtection">Import protection</a>" option was used in 64-bit SYS files<br />
[!] Fixed small issues<br />
[*] The settings file is now saved to %APPDATA%/PolyTech/VMProtect<br />
[*] Improved <a href="project_options.htm#ImportProtection">import protection
</a><br />
[+] Added the option "<a href=
"project_options.htm#VirtualMachines">Virtual machines</a>"
(different virtualized fragments of code are executed on different virtual machines with different architecture)<br />
[+] Added the option "<a href=
"project_options.htm#DebuggerDetection">Debugger detection</a>"
(if a debugger is detected during the protected application execution, the app shows a corresponding message and closes)<br />
[+] The script class <a href=
"script_classes.htm#TPESection">TPESection</a> now has a property
<a href=
"script_classes.htm#TPESection.IncludedInPacking">IncludedInPacking</a><br />
[+] Added support for IRETD command<br />
[+] Added an example of using markers in Lazarus<br /></p>
<h3>Version 1.63</h3>
<p>[!] Fixed an error occurred when using the
"<a href="project_options.htm#ImportProtection">Import protection</a>" option<br />
[!] Fixed small issues<br />
[+] A new event was added to the script: <a href=
"script_events.htm#OnBeforePackFile">OnBeforePackFile</a><br />
[+] The script class <a href=
"script_classes.htm#TPEFile">TPEFile</a> now has a new property
<a href="script_classes.htm#TPEFile.Handle">Handle</a><br />
[+] Added an example of using <a href=
"use_markers.htm">markers</a> in Free Pascal<br />
[*] Improved integrity control of VM objects<br /></p>
<h3>Version 1.62</h3>
<p>[!] Fixed errors occurring when using the
"<a href="project_options.htm#ImportProtection">Import protection
</a>" option<br />
[!] Fixed an error occurred when handling an exception in the TRY/EXCEPT/END block in the "Ultra" mode (for programs written on Delphi and
Borland C++ Builder)<br />
[*] Improved <a href="project_options.htm#ImportProtection">import protection</a> for SYS files<br />
[+] Every object of a project now can have its own compilation options for individual performance tuning
(individual options are configured in the project tree)<br />
[+] Added the "Move resources to the end of the file" option<br />
[+] Added an example of using extended markers (see
Examples\Scripts\UseExtMarkers)<br /></p>
<h3>Version 1.61</h3>
<p>[!] Fixed an error occurred when starting packed files under Windows 95/98<br />
[!] Fixed small issues<br />
[+] An ability to pass a file name via the command line is added to the Lite version<br />
[+] A history is added in the "Master" mode<br />
[+] Language selection is added in the "Master" mode<br />
[+] Added the "<a href=
"project_options.htm#ImportProtection">Import protection</a>" option
(recommended for use along with packing of the output file)<br />
[+] In the <a href="mode_console.htm">console version</a>, a new parameter "-we" is added(with this parameter all warnings are displayed as error)<br />
[+] A new class <a href=
"script_classes.htm#TPEResourceRecords">TPEResourceRecords</a> is added to the script<br />
[+] The script class <a href=
"script_classes.htm#TPEFile">TPEFile</a> now has a new property
<a href=
"script_classes.htm#TPEFile.ResourceRecords">ResourceRecords</a><br />
</p>
<h3>Version 1.6</h3>
<p>[!] Fixed small issues<br />
[*] Improved work with identical strings(now identical strings are displayed as a single object with multiple elements inside)<br />
[+] Added an option to pack the output file<br />
[+] A new class <a href=
"script_classes.htm#TPEExportRecords">TPEExportRecords</a> is added to the script<br />
[+] The script class <a href=
"script_classes.htm#TPEFile">TPEFile</a> now has a property
<a href=
"script_classes.htm#TPEFile.ExportRecords">ExportRecords</a><br />
[+] A new event <a href=
"script_events.htm#OnBeforeSaveFile">OnBeforeSaveFile</a> is added to the script<br />
[+] The help file in Chinese is added (translation by Wang
Xiaopeng)<br />
[+] Added MAP-file date/time check. (If modification date and time of the MAP-file differ from those of the protected file, the MAP-file is not loaded)<br /></p>
<h3>Version 1.56</h3>
<p>[!] Fixed an error occurred during virtualization of BT, BTC, BTR and BTS commands<br />
[!] Fixed small issues<br />
[*] List of options is sorted in order of priority<br />
[*] Improved support for SEH for VC8<br />
[*] Improved dynamic online-command production<br />
[*] Improved VM object integrity control<br />
[+] Added support for PREFETCH and PREFETCHW commands<br />
[+] New functions CompareText and
AnsiCompareText are added to the script<br />
[+] The script class <a href=
"script_classes.htm#TPEFile">TPEFile</a> now has a new property
<a href="script_classes.htm#TPEFile.Size">Size</a><br />
[+] Added an example of using <a href=
"use_markers.htm">markers</a> in MinGW<br />
[+] Added Chinese language (translation by Wang Xiaopeng)<br />
[+] In the procedure adding dialog <a href=
"project_functions.htm#Search">wildcard search</a> is added ("*" and "?" are allowed)<br />
[+] Messages of the compiler now includes output file size<br /></p>
<h3>Version 1.55</h3>
<p>[!] Fixed an error occurred when working with a file having unaligned ImageSize value<br />
[!] Fixed an error occurred when calculating TRY block beginning in Delphi programs<br />
[!] Fixed an error occurred when a "mixed" code was processed in Discardable and NonDiscardable section of SYS-files<br />
[!] Fixed an error occurred during virtualization of 64-bit DLL/SYS-files<br />
[*] The "Encrypt registers upon exit of the VM" option is restored<br />
[+] A new class <a href=
"script_classes.htm#TIniFile">TIniFile</a> is added to the script<br />
[+] The script class <a href=
"script_classes.htm#TPEFile">TPEFile</a> now has new properties and methods<br />
[+] The GUI-version now features a calculator to calculate file offsets by addresses<br />
[+] Added Italian language (translation by Gabriele Lanza)<br /></p>
<h3>Version 1.54</h3>
<p>[!] Fixed an error occurred during mutation of the PUSH ESP command<br />
[!] ИFixed an error occurred during virtualization of the FLDCW [ESP+xxxx] command<br />
[!] Fixed an error occurred during obfuscation of the bytecode<br />
[*] GUI is enhanced<br />
[+] Added German and Spanish languages<br />
[+] Added support for <a href="script.htm">scripts</a><br />
[+] In the <a href="mode_console.htm">console version</a> a parameter is added to specify a script file name<br /></p>
<h3>Version 1.53</h3>
<p>[!] Fixed errors occurred during virtualization of code in DLL/SYS-files<br />
[*] Code virtualization improvements<br />
[*] In the <a href="mode_console.htm">console version</a> "running" percent is removed when the output is directed to a file<br />
[+] Added an option to insert markers for x86-64<br />
[+] Added an ability to create folders in a project<br />
[+] In the <a href="mode_console.htm">console version</a> a new parameter is added to identify the file name of a project<br /></p>
<h3>Version 1.52</h3>
<p>[!] Fixed an error occurred during mutation of CMOVxx, CMPXCHG and CMPXCHG8B commands<br />
[!] Fixed an error occurred during mutation of LEA ESP,[ESP+xxxx] command<br />
[*] The RCL and RCR commands are added to the basic logic of VM<br />
[+] Added support for x86-64<br />
[+] In the GUI-version, the "<a href=
"project_options.htm">Options</a>" tab now can be set to display an output file name<br />
[+] Added the help file in Russian and English<br /></p>
<h3>Version 1.51</h3>
<p>[!] Fixed an error occurred during creating a "Relocation
Table" of zero length<br />
[!] Fixed an error occurred during mutation of the CALL [xxxx] command in the "Mutation" mode in DLL/SYS files<br />
[!] In the Delphi example, VMProtectBegin definition now includes a command preventing optimization of VMProtectBegin
(optimization could lead to a non-functional protected application)<br />
[+] Added the "Autosave project after compiling" option<br /></p>
<h3>Version 1.5</h3>
<p>[!] Fixed an error occurred while dragging files to the main window<br />
[!] Fixed an error occurred when working with read-only files<br />
[!] Fixed small issue during compilation in the "Ultra" mode<br />
[*] A protected file now inherits attributes of the original file<br />
[+] the list of protected procedures can now include strings (string assignment must be selected with markers)<br />
[+] The installation package includes examples of using markers in Borland C++ Builder, Delphi, MASM, Visual Basic and Visual
C++<br />
[+] Added an option: "Integrate to shell"<br /></p>
<h3>Version 1.4</h3>
<p>[!] Fixed an error occurred during mutation of IMUL, MUL, IDIV, DIV commands<br />
[!] Fixed an error occurred during virtualization of multiple CASE tables following one by one<br />
[!] Fixed an error occurred during virtualization of POP word/dword ptr [esp+xxxx] and IMUL reg8 commands<br />
[!] Fixed an error occurred while disassembling MOVNTPS and MOVNTPD commands<br />
[+] Added a new type of compilation "Ultra" (mutation + virtualization)"<br />
[+] Added compilation type selection in the add/modify procedure window<br />
[+] Added search for watermarks in processes (used for searching watermarks in packed files)<br />
[*] Enhanced compatibility with ASM compilers (TASM, MASM etc.)<br /></p>
<h3>Version 1.3</h3>
<p>[!] Fixed an error occurred during emulation of the FILD word ptr [xxxx] command<br />
[+] Each procedure can be specified a certain compilation type ("Mutation" or "Virtualization")<br /></p>
<h3>Version 1.25</h3>
<p>[+] Added support for SEH for VC7-8<br />
[+] 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"))<br />
[*] 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)<br /></p>
<h3>Version 1.24</h3>
<p>[+] Added a possibility to insert watermarks to a protected file<br />
[*] VM interpreter now supports multi-threaded applications (no need to create a procedure to allocate memory for interpreter's needs)<br />
[-] The option to allocate memory for VM interpreter's neds is removed. <br /></p>
<h3>Version 1.23</h3>
<p>[!] Fixed small issues [+] Added the "Master" mode [+] The procedure tree now displays links [*] Options
"Hide constants", "Dynamically create online commands",
"Encrypt registers on jumps", "VM object integrity control" and others are only available for registered users now</p>
<h3>Version 1.22.2</h3>
<p>[!]Fixed an error occurred during compilation of projects with the "Memory allocation in the interpreter" option enabled<br /></p>
<h3>Version 1.22</h3>
<p>[!] Fixed small issues<br />
[+] Added a possibility to check integrity of a bytecode (requires enabling the "VM object integrity control" option on)<br /></p>
<h3>Version 1.21</h3>
<p>[!] Fixed an error occurred during emulation of CMPXCHG8b, if operands are EAX and EDX<br />
[+] Now interpreter contains only those commands that will be used to execute a bytecode<br />
[-] Some commands were removed from the basic logic of VM (to complicate analysis and decompiling of a bytecode)<br /></p>
<h3>Version 1.2</h3>
<p>[!] Fixed an error occurred when the Bound Import directory is moved<br />
[+] Added a possibility to include marked parts of the code to the project(the beginning and the end of the
fragment are marked by the following code assembler insertions - "db $EB,$10,'VMProtect begin',0" and "db
$EB,$0E,'VMProtect end',0")<br />
[+] Added an option to include exported functions to the project<br />
[-] Removed the "Encrypt bytecode" option (bytecode is now always encrypted)<br /></p>
<h3>Version 1.1</h3>
<p>[!] Fixed errors occurred while: emulation of SBB
(wrong state of some flags); emulation of CMOVxx,
CMPXCHG and CMPXCHG8b (when the second operand was addressed using ESP or a DWORD value)<br />
[+] Added support for SEH in VB6 (native)<br />
[+] Added support for MAP-files generated by IDA<br />
[+] Added an option for batch adding of procedures<br />
[+] Added displaying of links to commands directly in the list of procedures<br />
[+] Added a new option: "Encrypt registers on jumps"<br /></p>
<h3>Version 1.09</h3>
<p>[*] End of procedure detection process while disassembling of cycles is improved<br />
[+] For UPX compatibility, Shareable flag of Writeable sections is cleared (if the old relocation table is used for VM needs)<br /></p>
<h3>Version 1.08</h3>
<p>[*] Big fragments of code disassembly is sped up<br />
[*] Metamorphism mechanism of bytecode interpreter is improved<br /></p>
<h3>Version 1.07</h3>
<p>[!] Fixed errors occurred when: working with PE files (when code section virtual size was equal to zero);
obfuscating FPU commands (errors led to wrong results); disassembly (CWD was detected instead of CWDE);
emulation of ROL and ROR commands (if the argument was 1-byte)<br />
[+] Added support for SSE2 command group<br /></p>
<h3>Version 1.06</h3>
<p>[!] Fixed an error corrupting the A flag state after emulating SUB, CMP, DEC, NEG, CMPXCHG, SCAS and
CMPS commands.<br />
[!] Fixed an error occurred when working with an unaligned file<br />
[+] Added support for BSF, BSR and CMPXCHG8b instructions<br />
[+] For multi-threaded applications, you can specify a memory allocation procedure for the VM interpreter
(memory allocation procedure must be defined as fastcall)<br /></p>
<h3>Version 1.05</h3>
<p>[+] Added support for FUCOMPP and FCMOVxx instructions<br />
[+] The type of strings
(ANSI/Unicode/Pascal) and comments for structure fields made by compilers are now shown
when looking at parts of the code<br />
[+] Added a metamorphism procedure for the bytecode interpreter<br />
[+] Added new compilation options: "Bytecode encryption" and
"Strip relocations (for EXE files only)"<br />
[-] Removed the "Obfuscate bytecode" option (now always on)<br /></p>
<h3>Version 1.04</h3>
<p>[!] Fixed an error occurred while detecting SEH handlers for C++<br />
[*] Bytecode obfuscator is totally reworked<br />
[+] Relocations are highlighted in the code now<br /></p>
<h3>Version 1.03</h3>
<p>[+] "Free space" from original parts of code is used to store the bytecode<br />
[+] Added detection of "short" pascal-format strings (first byte defines the length of a string)<br /></p>
<h3>Version 1.02</h3>
<p>[!] Fixed errors related to execution of online-commands in DLL/SYS<br />
[*] Changed the calculation algorithm of bytecode checksum<br />
[+] Added an option "VM interpreter integrity control" (also works as an anti-debug technique if the interpreter is being debugged and the debugger uses INT 03 as breakpoints).<br />
[+] Usage of "old" relocation tables to store the bytecode<br /></p>
<h3>Version 1.01</h3>
<p>[!] Fixed an error occurred when files with relocations were created(the error arose during operation of DLL/SYS-files in Windows 95/98/Me)<br />
[!] Fixed small issues in the disassembler<br />
[+] Added support for instructions: F2XM1, FABS, FCLEX, FCOS,
FDECSTP, FINCSTP, FINIT, FLDCW, FLDLN2, FLDLG2, FPREM, FREM1,
FPTAN, FRNDINT, FSIN, FSTCW, FTST, FYL2X, FPATAN, FLDZ,
FISTP<br />
[+] Added support for MAP-files of Borland C Builder<br />
[+] Now you can select the language of the interface and messages (Russian and English are available)<br /></p>
<h3>Version 1.0</h3>
<p>[!] Fixed small bugs in the interface<br />
[+] Added support for CMOV and CMPXCHG<br /></p>
<h3>Version 0.97</h3>
<p>[!] Fixed small bugs in the interface<br />
[+] Added support for Virtual Pascal<br /></p>
<h3>Version 0.96</h3>
<p>[!] Fixed error in the compiler (incorrect work with the C flag while compiling NEG and SBB instructions; fixed POPF processing;
fixed wrong bytecode CRC check when processing external conditional jumps)<br />
[!] Fixed bugs in the VM interpreter related to bytecode obfuscation<br />
[+] Improved processing of a MAP-file generated by C/C++
compilers (procedure names contain information about arguments)<br /></p>
<h3>Version 0.94</h3>
<p>[!] Fixed many errors<br /></p><br />
<br />
<br />
<br />
<br />
<hr noshade="noshade" size="1" />
<div align="center">
© 2006-2015 Copyright VMProtect Software
</div>
</body>
</html>