Программа VMProtect относится к новому поколению средств защиты программного обеспечения. VMProtect поддерживает компиляторы Delphi, Borland C Builder, Visual C/C++, Visual Basic (native), Virtual Pascal, XCode, при этом VMProtect содержит встроенный дизассемблер, позволяющий работать с исполняемыми файлами для операционных систем Windows и Mac OS X, а также подключать MAP-файл, создаваемый компилятором, для быстрого выбора участков кода, которые следует защитить. Для автоматизации операций по защите приложения в VMProtect реализован встроенный скриптовый язык. VMProtect обладает полной поддержкой 32/64-разрядных операционных систем семейства Windows (начиная с версии Win2k) и Mac OS X (начиная с версии 10.6), при этом независимо от платформы VMProtect поддерживает весь спектр исполняемых файлов (Windows версия может работать с файлами от Mac OS X и наоборот).
Базовым принципом, на основе которого построен VMProtect, является обеспечение эффективной защиты кода приложения от изучения, так как именно максимальное усложнение понимания логики работы внутренних механизмов защиты приложения создает максимальные трудности при взломе программы. Основными методами защиты программного кода, применяемыми VMProtect, являются виртуализация, мутация и смешанный метод защиты, сочетающий мутацию кода приложения с его последующей виртуализацией.
Одним из достоинств реализации метода виртуализации в программе VMProtect является то, что виртуальная машина, на которой выполняются виртуализированные фрагменты кода, встраивается в результирующий код защищаемого приложения. Следовательно, для функционирования приложения, защищенного с помощью VMProtect, нет необходимости использовать какие-либо дополнительные библиотеки или модули. VMProtect позволяет использовать несколько отличных друг от друга виртуальных машин для защиты разных участков кода одного приложения, что еще больше усложняет процесс взлома защиты, так как взломщику будет необходимо анализировать архитектуру уже нескольких виртуальных машин.
Метод мутации кода приложения, реализованный в VMProtect, основан на обфускации, в процессе которой в код приложения добавляются "мусорные" команды, "мертвый" код, случайные условные переходы, выполняется мутация оригинальных команд, а также переносится в стек выполнение ряда операций.
Ключевым отличием программы VMProtect от других протекторов является то, что с ее помощью можно защитить различные участки кода разными методами: часть кода виртуализировать, часть обфусцировать, а для самых критичных участков применить смешанный метод защиты.
Для предотвращения ложных срабатываний со стороны антивирусов зарегистрированная версия VMProtect использует библиотеку Taggant, которая подписывает защищаемый файл сертификатом владельца лицензии.
Еще одной уникальной возможностью программы VMProtect является включение в код приложения водяных знаков, позволяющих однозначно идентифицировать официального владельца взломанного экземпляра программы, а следовательно, принять к нему соответствующие меры.
Программа VMProtect доступна в 3-х версиях:
Отличия функциональных возможностей разных версий VMProtect приведены в таблице:
Возможности | Версия VMProtect | ||
Lite | Professional | Ultimate | |
Методы защиты | |||
Мутация | + | + | + |
Виртуализация | + | + | + |
Ультра (мутация+виртуализация) | + | + | + |
Консольная версия | - | + | + |
Опции защиты | |||
Защита памяти | + | + | + |
Защита импорта | + | + | + |
Защита ресурсов | + | + | + |
Упаковка | + | + | + |
Определение отладчика | + | + | + |
Определение средств виртуализации | + | + | + |
Сервисные функции | |||
Водяные знаки | - | + | + |
Скриптовый язык | - | + | + |
Система лицензирования | - | - | + |
Менеджер лицензий | - | - | + |
Защита файлов | - | - | + |