2012-04-01 67 views
-2

我想实现试用30天的功能。如何实现30天试用?

我使用了注册表项,但很容易被破解。

有没有什么好的想法?

+2

各种包括http://stackoverflow.com/questions/1525378/how-can-i-make-my-product-as-a-trial-version-for-30-days – blueshift 2012-04-01 14:29:21

回答

1

我想现在最安全的方式是使用web服务。但请记住,如果您的应用程序值得,它将被破解,无论您花费多少时间来保护它。

这个想法很简单:如果没有特定的密钥,应用程序根本无法工作。当密钥不存在时,它会尝试联系web服务。当它响应时,应用程序会收到一个“临时令牌”(存储“激活”的时间戳)。

它将使用此标记来计算剩余的天数。

如果您删除令牌,应用程序认为这是您第一次运行它并尝试连接到web服务。应用程序为新标记发送的请求将包含第一次相同的信息,并且不会生成标记:应用程序将显示有关您的试用期到期的消息。

另一方面,你可以尝试破解令牌,但它应该不是那么微不足道(即使它当然是可能的)。

然后将饼干找到一种方法来生成令牌(autoproduced或web服务发送给它不同的应用程序给定的凭据),或者只是跳过已经计算日期的控制(例如if data expired then expired else ok将成为if data expired then ok else ok ...)

同样的想法可以在没有webservice的情况下使用:当您安装程序时,密钥将被添加。如果您删除它,该程序将无法工作。密钥的内容被加密,所以你不应该轻易地用另一个时间戳生成密钥。

其基本概念是密钥的内容必须加密并且密钥必须存在才能使程序正常工作。那么,谁有兴趣超越试用期,至少应该在应用程序中破解加密算法。