文档彩票走势图>>VMPsoft中文文档>>步骤 1.7:限制免费升级期限
步骤 1.7:限制免费升级期限
VMProtect 是保护应用程序代码免遭分析和破解的可靠工具,但只有在正确构建应用程序内保护机制并且没有可能破坏整个保护的典型错误的情况下才能最有效地使用。
VMProtect 是保护应用程序代码免遭分析和破解的可靠工具,但只有在正确构建应用程序内保护机制并且没有可能破坏整个保护的典型错误的情况下才能最有效地使用。
怎么运行的
当 VMProtect 保护应用程序时,它会记录日期。许可系统将此日期视为应用程序的构建日期。您可以将此序列号可以使用的最大构建日期放入序列号中。因此,如果您将当前日期加上一年作为序列号,它将适用于您将在一年内发布的所有程序版本。一年零一天后发布的版本将无法使用此序列号,用户可以选择:使用旧版本的程序或购买新密钥以使用最新版本的程序再使用一年.
让我们试试
将格式为 MaxBuildDate=YYYYMMDD 的行放入 ini 文件中:
MaxBuildDate=20000101
在测试模式下,许可系统将今天视为构建日期,因此这一行中指定的日期已经过去很重要。也就是说,最大日期是昨天。修改main()函数的代码,使其看起来像这样:
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) { VMProtectSerialNumberData sd = {0}; VMProtectGetSerialNumberData(&sd, sizeof(sd)); printf("max. build date: y = %d, m = %d, d = %d\n", sd.dtMaxBuild.wYear, sd.dtMaxBuild.bMonth, sd.dtMaxBuild.bDay); printf("please register!\n"); return 0; } printf("I'm registered\n"); return 0; }
然后,在程序运行时,您应该看到以下内容:
state = SERIAL_STATE_FLAG_MAX_BUILD_EXPIRED max. build date: y = 2000, m = 1, d = 1 please register!
通过将 ini 文件中的日期替换为今天或明天,我们最终得到了“工作”程序:
state = 0 I'm regis从 ini 文件中删除 MaxBuildDate=… 行,这样它就不会影响我们的进一步步骤。