步骤 1.10:用户数据
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版本的文件,反之亦然。
VMProtect 是保护应用程序代码免遭分析和破解的可靠工具,但只有在正确构建应用程序内保护机制并且没有可能破坏整个保护的典型错误的情况下才能最有效地使用。
有其他问题请咨询加密解密技术QQ群:766135708
序列号最多可容纳 255 个字节的任意数据,许可系统按原样传递给程序。数据可以包含有关销售的任何其他信息、完整版操作所需的数据或其他内容。让我们修改我们的main()函数,让它从序列号中读取数据并将它们显示在屏幕上:
int main(int argc, char **argv) { char *serial = "Xserialnumber"; int res = VMProtectSetSerialNumber(serial); print_state(res); if (res) return 0; VMProtectSerialNumberData sd = {0}; VMProtectGetSerialNumberData(&sd, sizeof(sd)); printf("Serial number has %d byte(s) of data\n", sd.nUserDataLength); for (int i = 0; i < sd.nUserDataLength; i++) printf("%02X ", sd.bUserData[i]); printf("\n"); return 0; }
我们还将 Ini 文件缩减为:
[TestLicense] AcceptedSerialNumber=Xserialnumber
现在,我们运行程序并确保我们的序列号正常工作,但不包含任何数据:
state = 0 Serial number has 0 byte(s) of data
要将新的用户数据添加到序列号中,我们需要在 ini 文件中创建 UserData 变量,并以 HEX 格式为其分配数据。符号必须成对出现,即一行的长度必须是 2 的倍数。像这样:
UserData=010203A0B0C0D0E0
在这种情况下,如果我们运行该程序,我们将收到以下结果:
state = 0 Serial number has 8 byte(s) of data 01 02 03 A0 B0 C0 D0 E0
以上便是本篇文章的分享,如果您有任何疑问或者想获取更多产品试用/授权/价格信息,可以咨询我们的了解~