• 将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中将保护重新应用于应用程序,使其再次接受该序列号,或创建一个新许可证。

  • 相关阅读:
    java毕业设计全套基于SSM的垃圾分类管理系统
    React常用hooks总结
    九宫格 图片 自定义 路径
    注释之重——程序员与代码可维护性
    深度学习OCR中文识别 - opencv python 计算机竞赛
    SpringSecurity(六)【自定义认证案例】
    vue接入高德地图获取经纬度
    C++11(第一篇)【C/C++复习版】
    Maven入门
    LeetCode 185 部门工资前三高的所有员工
  • 原文地址:https://blog.csdn.net/m0_67129275/article/details/127546303