如何限制 .NET 应用程序执行特定次数
本文关键字:执行 何限制 NET 应用程序 | 更新日期: 2023-09-27 18:32:17
我正在制作一个C#(winforms)应用程序,我希望用户只能执行定义的次数(例如100次)。我知道可以添加 xml 或文本文件来存储计数,但这很容易编辑或"破解"......他们是否有任何方法将计数器嵌入代码中,或者可能是任何其他可能不容易破解的方法?而且以后也很容易"更新"成员资格以再执行 100 次?
提前致谢
方法可以存储变量。 如您所指出的,您可以将其写入文本或 xml 文件。 您可以将其写入注册表。 您可以对其进行加密并将其写入某处的文件中。
可能最安全的方法是将其写入服务器上,并在应用程序想要运行时"呼叫总部"。
防止复制是一个困难的平衡行为 - 对待你的合法客户太像罪犯一样,他们会离开你。
如果您谈论的是成员资格,那么您的应用程序可能是 Web 连接的。 如果是这种情况,您可以根据服务器上的 Web 服务验证实例,该服务保留并增加计数并发出"正常/无法运行"回复。
如果您不想这样做,我听说过一个应用程序使用隐写术来隐藏某些文件中的相关详细信息 - 您可以在某些图像资源中隐藏您的计数。
创建多个文件,其中包含计数器或应用的运行次数。用不同的文件名命名这些文件,并将其存储在不同的位置,以便用户难以定位,删除和破解。它不仅仅是一个文件的原因是,如果用户找到您的一个文件并更改或删除它,您仍然有其他文件包含有关您的应用程序的有效信息。
如果您的应用程序是商业产品,那么可能值得查看其他商业供应商(例如 SafeNet.com)的安全产品。
几年前,我将HASP HL硬锁用于一个项目,效果很好。
他们提供用于软件保护的硬件加密狗以及基于软件的保护(使用互联网上的身份验证服务)以及两者的组合。
他们的产品允许对你想要允许用户的内容进行非常细粒度的控制,例如,应用程序在过期之前可以启动多少次(这正是你想要的)或时间到期,或功能包,或所有这些的任意组合。
缺点是,他们的许可价格非常"健康"。如果这是值得的,这将取决于你自己应用程序的大小和价格。