在 C++ 软件中纳入共享软件限制
-
05-07-2019 - |
题
我希望以共享软件为基础实施我的软件,以便给用户提供最长的试用期(例如)30天,以尝试使用该软件。购买时,我打算给用户一个随机生成的密钥,当输入时,该密钥再次启用该软件。
我以前从未走过这条路,所以任何建议、反馈或关于如何完成此操作的“标准”方法的指示将不胜感激。
我预计用户不会通过更改系统日期或类似的事情来作弊,尽管这可能值得考虑。如果这个主题以前出现过,我们深表歉意。
解决方案
对于随机生成的密钥,如何验证密钥是否合法,或者如果密钥实际上是随机的,则如何验证密钥是否是伪造的?看看文章“实施部分序列号验证系统“因为它非常好并且很容易用任何语言实现。
关于时间试验,基本解决方案是将主要可执行文件的创建时间与当前系统时间进行比较,并根据差异采取行动。这假设您的安装程序将文件创建时间设置为安装时间,而不是保留编译时间!:)
其他提示
如果当前日期神奇地小于安装日期等,请注意时间的根本变化。
绕过这种类型的日期锁定的一种方法是在安装之前将日期更改为未来几年。因此,您应该检查今天的日期是否不低于安装日期。
如果您的软件非常有用,那么在您看到第一个订单之前,您肯定会在P2P上找到破解副本。无论您要实施的许可证执行代码有多复杂,都会发生这种情况。
也就是说,只是在某处存储首次运行日期(可能是注册表,如果在Windows上),并在30天后拒绝启动,或者只是打开一个提醒窗口。
不要担心作弊者,无论如何,他们都会找到解决方法。担心你的诚实客户,并努力不要让他们他们的生活更加艰难。
Eric Sink已经详细介绍了这个此处(第4部分)。
在第一次启动时,您可以将实际日期存储在某处。
每个下面的开始,你查找存储的日期,如果它存在你读它,如果它是在第一次启动后超过30天,你停止该程序。