我们可以很容易地开发试用版,当用户安装产品时,结束日期将存储在注册表中。当应用程序将运行时,每次我们检查系统日期小于或等于结束日期。如果是,那么应用程序将运行,否则应用程序将给出购买产品的消息。这样我们可以开发试用版,但有一个问题,用户可以改变系统日期和运行软件,也可以删除注册表项。
在没有互联网连接的情况下,大公司采取了什么措施来开发可以在单机上运行的试用产品?如果有人知道行业标准逻辑,请与我分享。
此步骤通常委托给第三方工具,如。NET Reactor或Dotfuscator。
这些工具(和其他工具)不仅会混淆您的代码,而且还可以支持不同程度的许可保护。
例如,NET Reactor将允许您指定超时时间,或运行次数,以使应用程序过期。然后,您可以分发许可证文件来解锁应用程序的另一段时间(或永久)。
Dotfuscator有一些奇特的功能,当你的应用程序运行时,当发生异常时,你可以向你的服务器报告,等等,让你了解你的应用程序在外部环境中的行为,除了支持各种许可模型。
当然,你的客户可能喜欢也可能不喜欢"打电话回家"这个应用程序的想法,但如果你想要的话,工具就在那里。
如果您不想在第三方工具上花钱(这可能是您的最佳选择),我建议在存储结束日期的注册表中使用某种加密值。设置系统运行所必需的密钥。当他们注册软件时,只需将结束日期设置在未来(例如3000年或其他)。这样,他们就不能删除密钥,也不能在不弄乱的情况下手工修改密钥。
最后,你会变得越来越狡猾,但总有人会找到绕过你保护的方法。要么提供有限的安装量(游戏邦注:只有几个功能),要么计算出你想在保护上投入多少努力,而不是这样做的回报。