VMProtect 是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C++、Visual Basic(本机)、Virtual Pascal和XCode编译器。
同时,VMProtect有一个内置的反汇编程序,可以与Windows和Mac OS X可执行文件一起使用,并且还可以链接编译器创建的MAP文件,以快速选择要保护的代码片段。
为了轻松实现应用程序保护任务的自动化,VMProtect实现了内置脚本语言。VMProtect完全支持Windows系列的32/64位操作系统(从Windows 2000开始)和Mac OSX(从版本10.6开始)。重要的是,无论目标平台如何,VMProtect都支持所有范围的可执行文件,即Windows版本可以处理Mac OS X版本的文件,反之亦然。(技术交流Qqun:766135708)
VMProtect 是保护应用程序代码免遭分析和破解的可靠工具,但只有在正确构建应用程序内保护机制并且没有可能破坏整个保护的典型错误的情况下才能最有效地使用。
接下来为大家介绍关于VMProtect主窗口中的控制面板,其中包括:“项目”部分、“功能”部分和“详情”部分。本篇文章将对其中的“项目”继续进行详细介绍。
“项目”部分
“项目”部分包含以下小节:
保护功能- 允许选择保护对象
许可证– 允许管理许可证和序列号
文件– 允许将附加数据文件或 DLL 包含到受保护的 EXE 文件中
脚本——允许通过内置的 LUA 脚本语言增强保护能力
选项- 允许配置应用程序保护参数
▲文件
“文件”部分允许开发人员在受保护的 EXE 文件中包含操作所需的其他数据,例如:图像、数据文件、文本资源和动态链接库。在执行受保护的 EXE 文件期间,包括 DLL 在内的所有类型的数据都直接从进程的内存中加载,绕过将这些数据写入磁盘。
添加文件工具栏按钮允许向项目添加新文件。您还可以使用上下文菜单添加新文件:
要调整所选文件的属性,请在左侧列表中选择它并编辑其标题、文件名或属性。
要从受保护对象列表中删除文件,请用鼠标右键单击它并选择“删除”,或者只需选择它并按 Del。
通过右键单击部分名称,您可以从编译中排除该文件。编译排除项保存到项目文件中。
▲脚本
“项目”部分的“脚本”小节用于使用内置脚本语言编写脚本:
您可以在该部分的主面板上编辑脚本代码。右键单击菜单允许使用代码片段进行操作。
某些代码块(循环、函数)可以使用相应行号附近的层次符号(加号或减号)折叠或展开。
右键单击部分名称以从编译中排除脚本。排除的脚本不会被执行,也不会被程序处理。此参数保存在项目设置中。
▲选项
“项目”部分的“选项”小节允许您配置各种保护参数:
>文件
内存保护——此选项允许您保护内存中的文件映像免受任何更改(检查所有不具有 WRITABLE 属性的部分的数据完整性)。在将控制传递给程序的原始入口点之前执行图像完整性检查。如果违反了完整性,则会显示相应的消息并且程序会停止执行。
导入保护——此选项允许隐藏受保护程序使用的 API 列表以防止黑客攻击。我们建议将此选项与输出文件的打包一起使用。
资源保护——该选项加密程序资源(图标、清单和其他服务资源除外)。
打包输出文件——此选项允许您打包受保护的文件以减小其大小。执行受保护文件时,应用程序会自动解压缩。整个解包过程没有任何磁盘写入,完全在 RAM 中。
使用此选项时,我们还建议将EntryPoint包含到受保护对象列表中。
重要提示:
当程序启动时,在解压缩代码后,控件将传递给 EntryPoint。如果 EntryPoint 的代码被虚拟化,那么这段代码将在与解包程序本身的代码相同的 VM 解释器上执行。EntryPoint 的虚拟化与受保护文件的打包相结合,可防止手动解压受保护文件,因为在这种情况下,入侵者必须恢复 EntryPoint 代码才能获得工作文件映像。
附加——额外的保护级别:
水印- 允许向项目添加水印。
VM Segments——编译文件时,新的段将被添加到存储各种系统数据的地方(虚拟化和变异代码、VM 解释器、水印等)。此选项允许您为这些新段指定名称。我们建议将段的标准“.vmp”名称更改为其他名称(例如“.UPX”)。
剥离调试信息——删除调试信息会阻碍破解者对代码的分析。
Strip Relocations——一些编译器(即Delphi)为操作系统不使用的EXE文件创建一个重定位表来加载EXE文件。如果启用该选项,则重定位表占用的空间将用于 VM 需要。
>检测
调试器——此选项可防止调试受保护的文件。调试器有两种类型:用户模式调试器(OllyDBG、WinDBG 等)和内核模式调试器(SoftICE、Syser 等)。调试器检测是在将控制权传递给程序的入口点之前执行的。如果检测到调试器,则会显示相应的消息并且程序会停止执行。
Virtualiztion Tools——此选项禁止在各种虚拟环境中执行受保护的文件:VMware、Virtual PC、VirtualBox、Sandboxie。在将控制权传递给程序的入口点之前执行虚拟化检测。如果检测到虚拟环境,则会显示相应的消息并且程序会停止执行。
>信息
在这里,您可以自定义程序在检测到调试器、虚拟化工具、文件已损坏或试图执行受序列号保护的代码时显示的消息。
>许可参数
选择在许可管理器中创建的项目文件作为许可参数文件。默认情况下,使用当前项目文件。