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

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 = 0I will run for 1 minute(s)state = 0After 1 minute(s):state = SERIAL_STATE_FLAG_RUNNING_TIME_OVER
被保护的程序应该定期分析一个序列 的状态,如果标志被设置,就关闭。许可系统不会自动这样做,因为程序可能需要释放内存,将数据保存到文件中等等。另外,你可能希望程序在运行时间过后不停止,而是切换到一个更受限制的模式。许可系统将这一点留给开发者。
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!