如何使软件安全?

时间:2011-07-25 12:16:42

标签: c# security piracy-prevention

  

可能重复:
  Protect .NET code from reverse engineering?

我想让我的软件在没有购买的情况下不会分发?

我认为的一种方法是制作网络服务并跟踪所有内容。

但是限制是并非所有的计算机都有互联网,所以这是不可能的。

一个想法是我通过CPU Serial Number获取WMI之类的计算机信息,然后将该软件用于在具有该序列号的系统上运行。我想不出比这更好的想法。

请帮助我了解如何确保软件安全的一些想法。

我不想保护它免受反编译。我希望如果我给用户一台计算机许可证,这样该软件就会粘在那台计算机上而不会在其他计算机上使用

3 个答案:

答案 0 :(得分:5)

简短的回答:你不能。

更长的答案:你总是可以放置这些安全屏障,这使得破解者的工作更加艰难,但最终,他们会破解它。这是一个平衡问题:你可以让他们的工作更加努力,但这也意味着更多的工作也适合你。在我看来,防止盗版的唯一真正方法是制作应用程序的基本部分,基于网络,并让所有客户在联系服务时使用唯一的ID。在大多数情况下(正如你所指出的那样),这很难甚至是不可能的,但说实话,没有其他真正的方法。

答案 1 :(得分:3)

Inishtech提供了一个解决方案Software Protection and Licensing Service,听起来就像你所说的那样。这是微软项目的衍生产品。它将代码的某些部分提取并移动到加密的dll上,该dll在加密的.Net VM上运行,特别是对于我理解的应用程序/客户端,所以它应该非常安全。

还有一个分发和管理许可等的平台。

不知道任何免费替代品。

关心GJ

答案 2 :(得分:2)

总有硬件加密狗:http://en.wikipedia.org/wiki/Dongle