首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何保护软件不受系统日期-时间更改的影响?

如何保护软件不受系统日期-时间更改的影响?
EN

Stack Overflow用户
提问于 2010-08-04 17:04:43
回答 13查看 20.2K关注 0票数 21

我想将许可系统添加到申请中。例如:用户购买1个月的许可证,然后该程序到期(Kinda Anti-Virus style?)

问题是,应用程序应该运行在可能或可能没有连接到互联网的系统中,那么如何防止日期-时间更改?

将应用程序的启动和关闭时间存储在加密文件中将不起作用,因为日期是可以更改的(由于程序每天的正常运行时间为8小时,在理想情况下,可以将许可证延长到几乎300% -将应用程序的关闭时间更改为启动程序前1秒)。

另一个问题--有没有办法防止像http://en.wikipedia.org/wiki/Deep_Freeze_(software)(http://en.wikipedia.org/wiki/Deep(software%29)?这样的软件(也许是扫描驱动程序?)

编辑:

我目前正在使用智能卡存储许可信息,并将在关键函数上使用代码虚拟化程序(我知道如何在API调用上设置断点和检查传递的数据--不需要隐藏这些数据,只是为了确保事情按计划进行)

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2010-08-10 12:06:40

步骤1:在windows注册表和文件中以加密格式创建trial_tracker条目。

步骤2:将app安装时间戳( yyyy-mm-dd-hh-mm-ss )分配给trial_tracker

每当应用启动时,检查当前系统时间戳是否大于trial_tracker且小于预期到期日

  • 如果是,则将trial_tracker更新为当前系统时间戳并继续。
  • 如果否,则trial_tracker已被篡改或试用时间已过期。要求用户购买完整版或退出。

注意:用户可以通过删除windows注册表项和加密文件来避免此问题。(如果他能够找到它们的话)。在这种情况下,可以添加进一步的检查。例如,创建辅助windows注册表项,用于检查主注册表和加密文件的存在。

此外,还可以根据互联网连接情况应用额外的远程检查(可选)

票数 16
EN

Stack Overflow用户

发布于 2010-08-04 17:22:46

是的,可以将许可证扩展高达300%,但对用户来说是非常困难的。坦率地说,如果有人要花一个月的每一天将他们的时间重新设置到他们退出你的程序后的一秒,然后重新启动它以延长使用时间,那么你对此无能为力,而你停止他们所花费的时间将比他们付出的更多。

票数 21
EN

Stack Overflow用户

发布于 2010-08-14 11:26:04

一位有声望的游戏开发经理在一次会议上表示,即使有互联网连接,保护软件也不可能超过一个月-如果你的软件很受欢迎:-)所以你可以只写没人想要的软件,它会像你想要的那样安全:-))

另一方面,如果你写的是相当受欢迎的软件,那么你不会在意是否有一小部分付费客户告发了一些额外的时间--他们无论如何都会在一周后更新。如果你真的想做短时间的许可,你必须把互联网作为先决条件。如果它是有好处的,它仍然会在一个月内被破解:-)但付费客户基本上仍将是付费客户,执行力度相当小。

然而,如果你做一些侵扰性的、可怕的事情来激怒人们,那么你就会失去付费客户,并为人们创造更大的动力来破解它。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3404045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档