Встроенный скриптовый язык является эффективным инструментом автоматизации создания защищенных приложений с помощью VMProtect. Вызов процедур и функций, необходимых на разных этапах создания защищаемого файла, осуществляется через события, обрабатываемые ядром VMProtect. При создании скриптов можно установить собственные обработчики для 5-ти событий, которые вызываются ядром протектора в следующем порядке:
function OnBeforeCompilation() end
Событие вызывается на этапе формирования списка защищаемых объектов. В обработчике OnBeforeCompilation можно добавить в проект новые процедуры, а также изменить или удалить уже существующие.
function OnBeforeSaveFile() end
Событие вызывается перед записью в выходной файл всех объектов, созданных в результате компиляции. В обработчике события OnBeforeSaveFile можно изменить как сам файл, так и некоторые его свойства (например, список ресурсов, список экспортируемых функций, имена секций и т.д.), которые впоследствии будут автоматически записаны в выходной файл.
function OnBeforePackFile() end
Событие вызывается перед упаковкой защищенного файла приложения. Используя OnBeforePackFile можно внести изменения в файл, который будет упакован. Данное событие вызывается только при использовании опции "Упаковать выходной файл".
function OnAfterSaveFile() end
Событие вызывается после записи всех объектов, созданных в результате компиляции, в выходной файл. В обработчике события можно добавить в выходной файл новые данные или изменить ранее записанные.
function OnAfterCompilation() end
Событие вызывается после компиляции всех объектов, входящих в проект. На данном этапе пользователю доступен откомпилированный файл, над которым могут быть выполнены любые необходимые действия, например добавление электронной подписи (сертификата).
При написании обработчиков событий можно создавать собственные процедуры и функции. Имена событий отображаются в редакторе скрипта жирным шрифтом.