VMProtect protects code by executing it on a virtual machine with non-standard architecture that makes it extremely difficult to analyze and crack the software. Besides that, VMProtect generates and verifies serial numbers, limits free upgrades and much more.
The Ultimate edition of VMProtect allows to add serial numbers to the protected application with minimal efforts. The feature is supported by PayPro Global e-commerce provider, so you even don’t need to setup your own serial number generator (of course, you can do that if you really need). Licensing feature allows to limit the period of free updates, set the time of life of serial number, prevent the code execution without serial numbers and much more. Any serial number can be blocked and newly protected files will not accept it.
VMProtect features two modes of the user interface: simple and expert. Simple mode allows to easily pick functions for protection, adjust options and get the protected file with just a few mouse clicks.
“Mutation” protection method
Mutation is a replacing the source code instructions with their analog (or a certain instruction sequence), that give the same result as the source code. It is the fastest yet simplest way of software protection. Quite useful when you need to hide the signatures of third-party libraries used in your code. For example if hacker knows that you use a well-known SHA-1 implementation, he may attack it, instead of your code. Mutation allows to hide the presence of the library.
“Virtualization” protection method
Virtualization is the process of translating executable code into instructions of a virtual machine with the different architecture, that is unknown to a potential cracker. Virtualized parts of the code are executed by the interpreter (virtual machine) without being converted into native machine code. Generally, the reengineering of virtualized code requires the study of virtual machine architecture first, then it requires the creation of a disassembler that understands that architecture. Both processes are quite time-consuming and stops a great deal of crackers. Each time you protect the application, VMProtect generates a completely different set of virtual machines, so even if a cracker finally understand an architecture of the particular virtual machine, he has to start from the very beginning for the second protected procedure of the same file.
“Ultra” protection method
Ultra combines virtualization and mutation methods to make the protection even better. The protected code is being mutated first and then the result is virtualized.
You can add the support of serial numbers to your application with minimal efforts. VMProtect provides a robust API that allows to pass a serial number to VMProtect’s internal module and then check its state.
Lock code to serial number
This feature allows to prevent the execution of some code by the additional encryption. The key is not present in the protected application and the code can be encrypted only when the serial number is entered. However, even after that, the code is still virtualized, so there is no way to dump it after entering a valid serial number. This is an essential feature for creating demo versions of software.
Watermark is an unique sequence of bytes that can be added to a protected file. It allows the unambiguous identification of the legal owner of the cracked software copy.
Virtual Files feature allows to bundle files inside the main executable, so your application with its plugins become a single file. This is useful for portable applications or if you want to hide the usage of some file or dynamic loading library.
Homepage : http://vmpsoft.com/
Changelog : http://vmpsoft.com/blog/
Supported Files And Formats
VMProtect supports both 32 and 64-bits executable files, dynamically loaded libraries and drivers. This includes screensavers, Active-X components, BPL libraries and other files in PE-format. Protected files are run on almost any version of Windows, even old Windows 95! However, licensing feature requires at least Windows 2000. VMProtect doesn’t support .NET executables.