什么是 VMProtect
VMProtect 是新一代的软件保护实用程序。VMProtect 支持 Delphi、Borland C Builder、Visual C/C++、Visual Basic(本机)、Virtual Pascal 和 XCode 编译器。同时 VMProtect 有一个内置的反汇编程序,可以与 Windows 和 Mac OS X 可执行文件一起工作,还可以链接由编译器创建的 MAP 文件,以快速选择要保护的代码片段。
为了轻松实现应用程序保护任务的自动化,VMProtect 实施了一种内置脚本语言。VMProtect 完全支持从 Windows 2000 开始的 Windows 系列的 32/64 位操作系统,以及从版本 10.6 开始的 Mac OS X。重要的是,无论目标平台如何,VMProtect 都支持所有范围的可执行文件,也就是说,Windows 版本可以处理 Mac OS X 版本的文件,反之亦然。
VMProtect 的基石原则是通过使应用程序代码和逻辑非常复杂以供进一步分析和破解,从而有效地保护应用程序代码免受检查。VMProtect 应用的主要软件代码保护机制是:虚拟化、变异和涉及应用程序代码变异与后续虚拟化的组合保护。
VMProtect 中使用的虚拟化方法的关键优势在于,执行虚拟化代码片段的虚拟机被嵌入到受保护应用程序的结果代码中。因此,受 VMProtect 保护的应用程序不需要第三方库或模块即可运行。VMProtect 允许使用多个不同的虚拟机来保护同一应用程序的不同代码片段,从而导致更复杂的破解过程,因为黑客现在必须分析多个虚拟机的架构。
VMProtect 中应用的应用程序代码变异方法基于混淆——一个向应用程序代码添加各种过多的“垃圾”命令、代码的“死”部分、随机条件跳转的过程。它还会改变原始命令并将某些操作的执行转移到堆栈。
VMProtect 与其他软件保护器的主要区别在于它能够使用不同的方法保护代码的不同部分:部分代码可以虚拟化,另一部分进行混淆,关键片段使用组合方法进行保护。
为了防止防病毒软件的误报,VMProtect 的注册版本使用库,该库使用许可证所有者的证书对受保护的文件进行签名。
VMProtect 的另一个独特功能是将嵌入到应用程序代码中。水印可以明确识别程序的被黑副本的官方所有者,因此可以对他或她采取某些措施。
VMProtect 有 3 个版本:
- 精简版;
- 专业的;
- 最终的;
下表列出了某些 VMProtect 版本的功能差异:
功能 | VMProtect 版本区别 | ||
简化版 | 专业版 | 终极版 | |
保护方法 | |||
突变 | + | + | + |
虚拟化 | + | + | + |
Ultra(变异+虚拟化) | + | + | + |
控制台版本 |
|
+ | + |
保护选项 | |||
内存保护 | + | + | + |
导出保护 | + | + | + |
资源保护 | + | + | + |
封装 | + | + | + |
调试器检测 | + | + | + |
虚盒检测 | + | + | + |
服务功能 | |||
水印 |
|
+ | + |
脚本语言 |
|
+ | + |
许可制度 |
|
|
+ |
许可证管理器 |
|
|
+ |
文件保护 |
|
|
+ |