如何限制.net应用程序执行特定次数

时间:2013-09-22 22:27:43

标签: c# .net visual-studio-2010

我正在制作一个C#(winforms)应用程序,我希望用户只能执行指定的次数(比如说100次)。我知道可以添加一个xml或一个文本文件来存储一个计数,但这很容易编辑或“破解”...是他们将代码嵌入代码中的任何方式,或者可能是任何其他可能不是容易破解?并且以后还可以轻松地“更新”会员资格再次执行100次?

提前致谢

4 个答案:

答案 0 :(得分:5)

有很多方法可以存储变量。如您所知,您可以将其写入文本或xml文件。您可以将其写入注册表。您可以对其进行加密并将其写入某个文件中。

可能最安全的方法是将其写在服务器上,并在应用程序运行时让应用程序“回家”。

防止复制是一项艰难的平衡行为 - 对待您的合法客户过于像罪犯一样,他们会离开您。

答案 1 :(得分:0)

如果您正在谈论会员资格,您的应用程序可能是网络连接的。如果是这种情况,您可以针对服务器上的Web服务验证实例,该服务保留并递增计数并发出“OK / Not OK to run”回复。

如果您不想这样做,我听说有一个应用程序使用隐写术隐藏某些文件中的相关详细信息 - 您可以在某些图像资源中隐藏您的计数。

答案 2 :(得分:0)

创建包含计数器的多个文件或应用程序运行的次数。使用不同的文件名命名这些文件并将其存储在不同的位置,以便用户很难定位,删除和破解。它不仅仅是一个文件的原因是因为如果用户找到您的某个文件并更改或删除它,您仍然有其他文件包含有关您的应用程序的有效信息。

答案 3 :(得分:0)

如果您的应用程序是商业产品,那么可能需要查看其他商业供应商的安全产品,例如SafeNet.com

几年前,我使用HASP HL硬锁进行了一个项目,效果很好。

它们提供硬件加密狗,用于软件保护以及基于软件的保护(使用互联网上的身份验证服务),以及两者的组合。

他们的产品允许对您希望允许用户的内容进行非常精细的控制,例如:应用程序在到期之前可以启动多少次(这可能就是您想要的)或时间到期,或功能包,或者它们的任意组合。

缺点是,他们拥有非常“健康”的许可价格。 如果这是值得的,将取决于您自己的应用程序的大小和价格。