我有一些试用软件,我希望分发给客户。我希望基于试用版的软件在安装后30天停止工作。
在软件中简单检查系统日期是实现此目的的最简单方法,但客户端是否可以通过在Windows中更改系统时间/日期来轻松绕过此保护?
有没有更好的方法来实现我想要的目标?
答案 0 :(得分:3)
我会检查最近修改过的文件的修改时间(可能有一些经常更新的常用路径,但你可以只搜索文件系统)。
此外,您可以按应用程序运行其会话的时间减少“剩余时间”(存储在某个秘密位置)。当它达到0时,它们就完成了。您还可以检测到时钟在任何会话中从最新看到的值向后移动,并通过删除例如它们来惩罚它们。整整一天。
答案 1 :(得分:2)
最好的办法是不要警告他们,30天后(一定要检查两种方式,否则他们可以设置将来的时钟,安装你的应用程序,并将时钟重置为今天)它也会停止工作,跟踪期限到期后锁定应用程序,因此即使他们重置时钟,它仍应锁定
答案 2 :(得分:2)
您的客户是谁?如果它是针对普通大众的,并且它是一个相当狭窄的受众,我认为你可以坚持基于时间的方法。我同意用户会厌倦调整系统时钟而只是购买你的软件。但如果它是一个非常受欢迎的软件,或者它是针对开发人员,那么是的,你应该加强试用保护,因为它会很快破解。
答案 3 :(得分:1)
是的,他们可以调整系统时钟。但它越来越不方便这样做越远超过试用期的结束日期。在用时钟刻录之前,他们会放弃使用你的软件。
或者,更有可能的是,他们会破解您的保护计划,因此它可以无限期地使用它。
答案 4 :(得分:1)
我建议您定期将软件回拨给您的服务器;用户可以随心所欲地摆弄系统时钟,但是您可以控制服务器上的时钟。如果服务器知道许可证何时发出,它可以适当地回复客户端的请求,无论客户端的时钟状态如何。
免责声明&插件:我共同创办的公司生产OffByZero Cobalt licensing solution。它是软件保护的一个交钥匙解决方案,&专门处理你提到的那种时间有限的情况。
答案 5 :(得分:0)
如上所述,基于时间的许可很容易解决。您可以跳过一些箍,以防止人们重置系统时钟。您可以联系经过认证的时间服务器并以这种方式设置内部时钟,但如果他们可以访问您的代码,那么火箭科学家就不会破解它。一种简单的方法是在asm列表中找到时间检查并围绕它进行分支。
我们已经为此工作了多年(披露:我在复制保护公司(www.wibu.us)工作)并使用智能卡芯片上的内部时钟和经过认证的时间服务器的组合,以及一些代码确保你永远不能设置时间(代码总是加密,所以不能修改)。我们还有一个纯软件解决方案,它使用内部时钟但不使用智能卡芯片。所有安全措施都有缺点;为您的市场,价格点等寻找正确的权衡是诀窍。