保护软件免受盗版

时间:2011-03-14 02:22:32

标签: c# .net license-key piracy-prevention piracy-protection

在Stack Overflow上阅读了关于如何保护软件的大量线程后,我意识到你不能。值得庆幸的是,我的软件主要针对托管企业(不是很多人)和少数消费者。我不认为软件会足够流行,任何人都会破解它,但我想保护它。

在我找到的其中一个主题中,它有一个很好的选项列表。我决定选择“简单注册可重新启动的密钥,经常在网上验证。”

我认为,因为我的应用程序是一个将通过管理容器运行的C#NET控制台应用程序,所以我可以为它发出密钥。也许做一个MySQL数据库并保留一个只能在一次安装中使用的密钥列表,以及另一个可以在X安装上使用的密钥列表。我的应用程序将在启动时使用命令行参数运行,因此添加一个像“-key 29839X900AQ”之类的东西将减轻他们必须真正担心它的需要。

是否有人知道任何提供此类设置帮助的信息/网站?

2 个答案:

答案 0 :(得分:2)

您绝对可以保护软件和声称存在错误的线程。没有人破解我们的系统(如果正确实施),我们已经公开竞争,看看是否有人可以(免责声明:我为一家软件保护公司工作)。

然而,有很多方法可以解决这个问题,并且没有“免费”系统或纯软件系统无法破解。然而,有些人足够强大,他们需要付出巨大的努力,除非你的软件吸引大型市场或花费很多美元,否则没有动力让一个黑客入侵。

如果我理解您提出的解决方案,您将很容易受到共享密钥的人的攻击。您可以检查单个密钥是否始终来自相同的IP地址,但可能是欺骗性的(允许非法复制),或者可能阻止合法客户访问。

保护就像把锁放在门上:更多的锁可以想象防盗,但它也让你进出更难。如果有太多的锁,它可能只会让窃贼找到一个可以开启的窗口。由于我们以此为生,我们研究了人们如何破解软件,很多时候保护方案很容易解决,只是不是原始开发者预期的方式。每个人都想要实现的诀窍是拥有正确的保护力量而不会产生漏报(错误地阻止合法用户)。如果您需要更多帮助,请随时与我联系。

答案 1 :(得分:0)

执行此操作的一种方法是使用Web服务,其中保留所有已撤销/已禁用许可证的列表(可能在数据库中)。在您的应用程序中,您将不时ping服务以查看当前使用的许可证是否已被撤销。如果是这样,许可证验证将失败。

如果您可以使用第三方系统,请通过其“验证通知许可证服务”许可证设置查看支持此确切方案的CryptoLicensing

免责声明:我在CryptoLicensing的开发人员LogicNP Software工作。