VMProtect是一种很可靠的工具,能够保护应用程序代码免受分析和破解,但只有在应用程序内保护机制正确构建且没有可能破坏整个保护的严重错误的状况下,才能实现最好的效果。编程
VMProtect(点击下载)具备内置的强大脚本语言LUA,极大地加强了VMProtect在每一个保护阶段的默认保护功能。LUA语法很是相似于JavaScript,但与之不一样的是,LUA不包含显式类。不过,脚本语言容许轻松地实现类、继承和事件等面向对象的编程机制。函数
对于如何使用脚本语言,能够进行如下三类的介绍:工具
核心处理的事件设置spa
内置脚本语言是使用VMProtect自动建立受保护应用程序的有效方法。在VMProtect核心处理的某些事件中,将调用构建受保护文件的各个阶段所需的过程和函数,能够按如下顺序为VMProtect核心调用的5个事件设置本身的处理程序:对象
建立保护对象列表时,将调用下述事件。在OnBeforeCompilation处理程序中,能够向项目添加新过程,或修改或删除现有过程。继承
function OnBeforeCompilation() end
在将编译期间建立的全部对象写入输出文件以前调用下述事件。在OnBeforeSaveFile事件处理程序中,您能够更改自动写入输出文件的文件及其属性(例如资源列表,导出函数列表,节名称等)。事件
function OnBeforeSaveFile() end
在打包应用程序的受保护文件以前调用下述事件。使用OnBeforePackFile,您能够修改要打包的文件。 仅在启用“包输出文件”选项时调用此事件。ip
function OnBeforePackFile() end
将编译期间建立的全部对象写入输出文件后调用下述事件。事件处理程序能够将新数据添加到输出文件或更改之前写入的数据。资源
function OnAfterSaveFile() end
在编译项目的全部对象后调用下述事件。在此阶段,用户能够访问已编译的项目,并能够使用它执行任何操做,例如添加数字签名(证书)。get
function OnAfterCompilation() end