VMProtect是一种很可靠的工具,可以保护应用程序代码免受分析和破解,但只有在应用程序内保护机制正确构建且没有可能破坏整个保护的严重错误的情况下,才能实现最好的效果。
下载VMProtect最新试用版https://www.evget.com/product/1859/download
接下来为大家介绍关于VMProtect主窗口中的控制面板,其中包括:“项目”部分、“功能”部分和“详情”部分。本章将对其中的“项目部分”进行详细介绍。
“项目”部分
“项目”部分包括以下小节:
- 保护功能 - 允许选择保护对象
- 许可证 - 允许管理许可证和序列号
- 文件 - 允许将其他数据文件或DLL包含在受保护的EXE文件中
- 脚本 - 允许通过内置的LUA脚本语言增强保护功能
- 选项 - 允许配置应用程序保护参数
▲选项
“选项”部分允许您配置各种保护参数:
文件
- 内存保护 - 此选项允许从任何更改中保护文件在内存中的映像(检查所有没有WRITABLE属性的部分的数据完整性)。在将控件传递给程序的原始入口点之前执行映像完整性检查。如果违反完整性,则会显示相应的消息,程序将停止执行。
- 导入保护 - 此选项允许隐藏受保护程序使用的API列表。建议使用此选项以及输出文件的打包。
- 资源保护 - 此选项加密程序的资源(图标,清单和其他服务资源除外)。
- 打包输出文件 - 此选项允许打包受保护的文件以减小其大小。执行受保护文件时,将自动解压缩应用程序。整个解包没有任何磁盘写入,完全在RAM中。
重要提示:程序启动时,解压缩代码后,控件将传递给EntryPoint。如果EntryPoint的代码是虚拟化的,则此代码将在与解包器本身的代码相同的VM解释器上执行。EntryPoint的虚拟化与受保护文件的打包相结合,可防止手动解压缩受保护文件,因为在这种情况下,入侵者必须恢复EntryPoint代码才能获得工作文件映像。
- 额外的保护级别:
- 水印 - 允许为项目添加水印。
- VM段 - 编译文件时,会将新段添加到存储各种系统数据的位置(虚拟化和变异代码,VM解释器,水印等)。此选项允许指定这些新段的名称。建议将段的标准“.vmp”名称更改为其他名称(例如“.UPX”)。
- 剥离调试信息 - 删除调试信息阻碍了破解者对代码的分析。
- 剥离重定位 - 某些编译器(即Delphi)为EXE文件创建重定位表,操作系统不使用该重定位表来加载EXE文件。如果启用该选项,则重定位表占用的空间将用于VM需求。
检测
- 调试器 - 此选项可防止调试受保护的文件。有两种类型的调试器:用户模式调试器(OllyDBG,WinDBG等)和内核模式调试器(SoftICE,Syser等)。在将控制传递给程序的入口点之前执行调试器检测。如果检测到调试器,则会显示相应的消息,程序将停止执行。
- 虚拟化工具 - 此选项禁止在各种虚拟环境中执行受保护的文件:VMware,Virtual PC,VirtualBox,Sandboxie。在将控制传递到程序的入口点之前执行虚拟化的检测。如果检测到虚拟环境,则会显示相应的消息,程序将停止执行。
信息
在这里,可以自定义程序在检测到调试器(虚拟化工具)、文件损坏或尝试执行序列号保护的代码时显示的消息。
许可参数
选择在许可证管理器中创建的项目文件作为许可证参数文件。默认情况下,使用当前项目文件。