2

我有一些试用软件希望分发给客户。我希望基于试用版的软件在安装 30 天后停止工作。

在软件中简单检查系统日期是实现此目的的最直接方法,但客户不能通过在 Windows 中更改其系统时间/日期来轻松绕过此保护吗?

有没有更好的方法来完成我想要的?

4

6 回答 6

3

我会检查最近修改文件的修改时间(可能有一些经常更新的常见路径,但您可以搜索文件系统)。

此外,您可以通过应用程序为其会话运行的时间来减少“剩余时间”(存储在某个秘密位置)。当它达到0时,它们就完成了。您还可以检测到时钟从任何会话中的最新看到值向后移动,并通过删除例如一整天来惩罚它们。

于 2009-09-18T05:22:49.750 回答
2

最好的办法是不警告他们,并且在 30 天后(一定要检查两种方式,否则他们可以将时钟设置为将来,安装您的应用程序,然后将时钟重置为今天)它停止工作,同时锁定应用程序一旦跟踪期到期,因此即使他们随后重置时钟,它仍应被锁定

于 2009-09-18T05:18:47.553 回答
2

你的客户是谁?如果是面向大众,而且受众范围相当狭窄,我认为您可以坚持基于时间的方法。我同意用户会厌倦调整他们的系统时钟并购买您的软件。但如果它是一款非常受欢迎的软件,或者它是针对开发人员的,那么是的,你可能应该加强试用保护,因为它很快就会被破解。

于 2009-09-18T05:29:01.767 回答
1

是的,他们可以摆弄系统时钟。但是越过试用期的结束日期,这样做会逐渐变得越来越不方便。他们会在使用时钟之前放弃使用您的软件。

或者,更有可能的是,他们会破解您的保护方案,从而给他们无限的时间来使用它。

于 2009-09-18T05:15:30.593 回答
1

我建议定期将您的软件回调到您的服务器;用户可以随心所欲地摆弄系统时钟,但您可以控制服务器上的时钟。如果服务器知道何时颁发许可证,它可以适当地回复来自客户端的请求,而不管客户端时钟的状态如何。

免责声明和插件:我共同创立的公司生产OffByZero Cobalt 许可解决方案。它是软件保护的交钥匙解决方案,专门处理您提到的那种限时方案。

于 2009-10-12T22:42:07.417 回答
0

如前所述,基于时间的许可很容易解决。您可以跳过一些障碍来阻止人们重置系统时钟。您可以联系经过认证的时间服务器并以这种方式设置您的内部时钟,但如果他们可以访问您的代码,则不需要火箭科学家来破解。一个简单的方法是在 asm 列表中找到时间检查并围绕它进行分支。

我们已经为此工作多年(披露:我在一家版权保护公司 (www.wibu.us) 工作)并使用智能卡芯片上的内部时钟和经过认证的时间服务器的组合,加上一些代码来确保你永远不能把时间倒回去(代码总是被加密的,所以它是不可修补的)。我们还有一个纯软件解决方案,它使用内部时钟但不在智能卡芯片上。所有安全措施都有缺点;为您的市场、价格点等找到正确的权衡是诀窍。

于 2011-03-22T21:51:38.670 回答