彩票走势图

VMProtect如何限制客户的试用时间?

原创|使用教程|编辑:何跃|2021-08-23 15:13:38.930|阅读 446 次

概述:你可以限制程序从启动的那一刻开始运行。这对演示来说很有用:你向用户提供一个真实的序列号,但程序的工作时间不超过5分钟。许可系统并不强迫这样的程序关闭,而只是设置状态标志。因此,让我们设定最大工作时间为一分钟,在ini-file中添加以下一行。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

VMProtect脚本模式试过吗?本篇你将用上!

你可以限制程序从启动的那一刻开始运行。这对演示来说很有用:你向用户提供一个真实的序列号,但程序的工作时间不超过5分钟。许可系统并不强迫这样的程序关闭,而只是设置状态标志。因此,让我们设定最大工作时间为一分钟TimeLimit=1 ,在ini-file中添加以下一行。

int main(int argc, char **argv)
{
        char *serial = "Xserialnumber"; // we set the serial number directly in the code, for simplicity

        int res = VMProtectSetSerialNumber(serial);
        print_state(res);
        if (res) return 0;

        VMProtectSerialNumberData sd = {0};
        VMProtectGetSerialNumberData(&sd, sizeof(sd));
        printf("I will run for %d minute(s)\n", sd.bRunningTime);
        print_state(VMProtectGetSerialNumberState());
        Sleep(60 * 1000 * sd.bRunningTime);
        printf("After %d minute(s):\n", sd.bRunningTime);
        print_state(VMProtectGetSerialNumberState());

        return 0;
}
程序在启动时打印出序列号的状态,然后计算出最大的操作时间,并等待它过期。然后再次打印序列号的状态。在最大操作时间设定为一分钟的情况下,我们应该收到以下结果。

state = 0
I will run for 1 minute(s)
state = 0
After 1 minute(s):
state = SERIAL_STATE_FLAG_RUNNING_TIME_OVER
被保护的程序应该定期分析一个序列号的状态,如果标志被设置,就关闭。许可系统不会自动这样做,因为程序可能需要释放内存,将数据保存到文件中等等。另外,你可能希望程序在运行时间过后不停止,而是切换到一个更受限制的模式。许可系统将这一点留给开发者。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP