C# 使用.Net技术制作试用版产品需要帮助吗

C# 使用.Net技术制作试用版产品需要帮助吗,c#,trialware,C#,Trialware,我们可以很容易地开发试用版,当用户安装产品时,结束日期将存储在注册表中。当应用程序运行时,我们每次检查系统日期是否小于或等于结束日期。如果是,则应用程序将运行,否则应用程序将显示购买产品的消息。这样我们可以开发试用版,但有一个问题,用户可以更改系统日期并运行软件,用户也可以删除注册表项。大公司采取了哪些措施来开发在没有互联网连接的情况下在单机上运行的试用产品 如果有人知道行业标准逻辑,请与我分享。此步骤通常委托给第三方工具,如或 这些工具(和其他工具)不仅会混淆代码,还可以支持不同程度的许可保护

我们可以很容易地开发试用版,当用户安装产品时,结束日期将存储在注册表中。当应用程序运行时,我们每次检查系统日期是否小于或等于结束日期。如果是,则应用程序将运行,否则应用程序将显示购买产品的消息。这样我们可以开发试用版,但有一个问题,用户可以更改系统日期并运行软件,用户也可以删除注册表项。大公司采取了哪些措施来开发在没有互联网连接的情况下在单机上运行的试用产品


如果有人知道行业标准逻辑,请与我分享。

此步骤通常委托给第三方工具,如或

这些工具(和其他工具)不仅会混淆代码,还可以支持不同程度的许可保护

例如,Netreactor将允许您指定超时,或者指定应用程序过期的运行次数。然后,您可以分发许可证文件以在另一段时间(或永久)解锁应用程序

Dotfuscator具有一些奇特的功能,当应用程序运行时,当出现异常时,可以向服务器报告。除了支持各种许可模式外,还可以让您了解应用程序在野外的运行情况


当然,你的客户可能喜欢也可能不喜欢应用程序“打电话回家”的想法,但如果你想要的话,工具就在那里。

如果你不想花钱购买第三方工具(这可能是你最好的选择),我建议在存储结束日期的注册表中使用某种加密值。设置系统运行所需的密钥。当他们注册软件时,只需将结束日期提前到未来(比如3000年或其他年份)。这样他们就不能删除密钥,也不能手工修改密钥而不把它弄乱


最后,你可能会变得越来越狡猾,但总有人会想办法绕过你的保护。要么发送有限的安装(只有几个功能),要么计算出与这样做的回报相比,您希望在保护方面付出多少努力。

在加密之前,我会在xor中添加带有主机名或类似内容的日期。其效果是,关键是只在好的计算机上工作。有人编辑了我的答案,以包括-我只将其包括在评论中,而不是更改原始答案。