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 的注册版本使用 Taggant 库,该库使用授权所有者的证书对受保护的文件进行签名。
VMProtect 的另一个独特功能是将 水印 嵌入到应用程序的代码中。水印可以明确识别被黑程序的正式所有者,从而对其采取某些措施。
VMProtect 有 3 个版本:
- 精简版
- 专业版;
- 旗舰版;
下表列出了某些功能差异的 VMProtect 版本:
VMProtect 版 | |||
精简版 | 专业版 | 旗舰版 | |
保护方法 | |||
变异 | + | + | + |
虚拟 | + | + | + |
超级(变异+虚拟) | + | + | + |
控制台版本 | - | + | + |
保护选项 | |||
内存保护 | + | + | + |
导入保护 | + | + | + |
资源保护 | + | + | + |
压缩 | + | + | + |
调试器检测 | + | + | + |
虚拟机环境检测 | + | + | + |
服务功能 | |||
水印 | - | + | + |
脚本语言 | - | + | + |
授权系统 | - | - | + |
授权管理 | - | - | + |
文件保护 | - | - | + |