将VMProtect集成到应用程序教程之实模式(三):测试结果
在实模式下,VMProtect许可系统向受保护的应用程序放置一个特殊的许可模块。该模块执行与SDK中的测试功能相同的功能,但是使用序列号的内容而不是配置ini文件。本系列教程的五个步骤说明了使用基于VMProtect和许可系统的全功能保护来保护简单应用程序的过程。
步骤四 测试结果
序列号到期日期
创建另一个具有特定到期日期的序列号(例如,2005)。该日期已经过去,所以序列号必须不正确。切换到“Licenses”部分,然后单击工具栏上的“Add license”按钮。在“Add license”对话框窗口中,启用“Expiration date”选项并指定2005年9月30日。创建序列号,将其复制并粘贴到serial.txt,然后运行程序:
C:\test>dummy_app.vmp.exe serial number is bad state = SERIAL_STATE_FLAG_DATE_EXPIRED
许可模块返回“serial number is expired”标志。现在,将工作序列号放回serial.txt文件,并确保许可模块完全接受它。
C:\test>dummy_app.vmp.exe serial number is correct, calling foo() I'm foo done
将序列号添加到黑名单
想象一下,我们的“good”序列号已经泄漏到Internet上,并且已经被盗用,现在需要阻止它,使其在程序的将来版本中不起作用。
为此,选择列表中的序列号,并将主面板中的“Blocked”属性设置为“Yes”。目前,序列号尚未被阻止,但是当再次保护文件时,应用程序将不再接受该序列号。如果现在运行程序,它应该接受被阻止的序列号且不会出现任何问题,因为这是旧版本,不知道阻塞编号:
C:\test>dummy_app.vmp.exe serial number is correct, calling foo() I'm foo done
现在,复制程序并将其命名为“dummy_app1.vmp.exe”,打开VMProtect并再次保护应用程序。然后运行此新版本:
C:\ test> dummy_app.vmp.exe 序列号为错误 状态= SERIAL_STATE_FLAG_BLACKLISTED
再次与旧版本进行比较:
C:\ test> dummy_app1.vmp.exe 序列号正确,调用foo() 我 完成了foo
较早的版本不知道被阻止的序列号,所以可以像以前一样工作。
在下一步中,我们将尝试将代码锁定为序列号。但是在那之前,请解除阻止序列号,然后在VMProtect中将保护重新应用于应用程序,使其再次接受该序列号,或创建一个新许可证。
有关VMProtect更多资源,请联系了解
12月,庆圣诞,迎元旦,上“慧都网”小程序签到兑软件商城无门槛抵价券>>> 领优惠券购VMProtect享折上折>>>