代码保护软件 VMProtect 用户手册之准备项目: 使用标记

VMProtect​​​​​​​ 是一种很可靠的工具,可以保护应用程序代码免受分析和破解,但只有在应用程序内保护机制正确构建且没有可能破坏整个保护的严重错误的情况下,才能实现最好的效果

   要保护代码的各个片段并保护字符串常量,可以在应用程序的源代码中插入特殊标记。标记是对从外部库导入的函数的调用(32位应用程序使用VMProtectSDK32.dll,而64位应用程序使用VMProtectSDK64.dll;驱动程序分别使用VMProtectDDK32.sys和VMProtectDDK64.sys) - 也可称为VMProtectSDK。VMProtectSDK中的过程和函数不执行任何操作,这个特殊标记只是VMProtect用于确定受保护代码边界的标签。受保护块的开头和结尾标记如下:

  • Delphi
uses VMProtectSDK;

VMProtectBegin(MARKER_TITLE);
...
VMProtectEnd;
  • C/C++
#include "VMProtectSDK.h"

VMProtectBegin(MARKER_TITLE);
...
VMProtectEnd();
  • MASM
include VMProtectSDK.inc

invoke VMProtectBegin,SADD(MARKER_TITLE)
...
invoke VMProtectEnd
  • Visual Basic
VMProtectBegin (StrPtr(MARKER_TITLE))
...
VMProtectEnd

VMProtectBegin不是必选项,你也可以选择使用带有预定义编译类型的标记。

  • VMProtectBeginVirtualization - 标记使用“Virtualization”编译类型。
  • VMProtectBeginMutation – 标记使用“Mutation”编译类型。
  • VMProtectBeginUltra – 标记使用“Ultra”编译类型。

    标记处理方式:当VMProtect分析受保护应用程序的代码时,它会定位对VMProtectSDK过程和函数的所有调用。要保护的块的边界由标记对VMProtectBegin / VMProtectBeginVirtualization / VMProtectBeginMutation / VMProtectBeginUltra 和 VMProtectEnd定义。 然后,当VMProtect处理受保护应用程序的代码时,它会删除标记和对VMProtectSDK的任何调用信息,所以这些库没有必要包含在你的安装程序包中。标记无论是否包含在编译中,都会被删除。使用命名标记时,也会删除其名称。

    如果指定了标记的标题,系统就会为其分配名称,如“VMProtectMarker MARKER_TITLE”。 如果未指定标记的标题,则会为其分配唯一名称:“VMProtectMarker”+标记序列号。使用非命名标记有一个明显的缺点:如果将新标记插入到程序代码中,则所有非命名标记的编号将全部发生变化。所以我们建议始终使用命名标记。

    使用标记时要考虑的一个特别重要的事情是,你不应该允许从标记内的非保护区域跳转。例如,如果将一部分循环括在标记中,就会发生这种情况。如果使用标记的应用程序在保护后变得不起作用,则可以通过启用“Debug mode”选项来检测来自非保护区域和地址的跳转。在此模式下,当受保护的应用程序在调试器下工作时,如果检测到从非受保护区域跳转到受保护的调试器,后者将中断程序的执行。找到所有这些跳转后,你应该更改标记的位置,如果不方便,请使用VMProtect的GUI版本将这些地址标记为外部。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Most of our competitors do not have the same innovative features and none has the same leading combination of features and cost efficiency. VMProtect Virtualizes Code Code virtualization is the next step in software protection. Most protection systems encrypt the code and then decrypt it at the application’s startup. VMProtect doesn’t decrypt the code at all! Instead, the encrypted code runs on a virtual CPU that is markedly different from generic x86 and x64 CPUs as the command set is different for each protected file. VMProtect Supports Nearly All Executable Formats VMProtect allows the protection of executable files (EXE, SCR), dynamic-link libraries (DLL, OCX, BPL) and drivers (SYS). You can use the same protection for your application, its plugins and even drivers! VMProtect Supports 64-bit Code Due to the growing number of 64-bit systems, it is essential that the protector supports them. We added the support of 64-bit applications, libraries and drivers in 2007, so everything is tested well and you can easily migrate to 64 bits. VMProtect Supports Most Versions Of Windows Unlike some competitors, VMProtect doesn’t rely on undocumented Windows features, so protected files work well on almost any version of Windows OS, starting from Windows 95. Both 32 and 64-bit versions are supported and there are no problems with DEP or UAC. VMProtect Is A Complete Protection Solution VMProtect allows the generation and verification of serial numbers. Both manual and automatic generation are supported. Serial numbers can be limited by time or date and locked to the hardware, while the free upgrade period can also be limited. VMProtect ensures it is physically impossible to run code without a serial number.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值