2

可能重复:
保护 .NET 代码免受逆向工程?

我想让我的软件不被购买就不会分发?

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

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

一个想法是我得到计算机信息CPU Serial NumberWMI然后构建该软件以在具有该序列号的系统上运行。我想不出比这更好的主意了。

请帮助我提供一些如何使软件安全的想法。

我不想保护它不被反编译。我希望如果我给用户一个单一的计算机许可证,这样这个软件就可以与那台计算机保持一致,并且不会在其他计算机上调整

4

3 回答 3

5

简短的回答:你不能。

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

于 2011-07-25T12:25:15.167 回答
3

Inishtech提供了一个名为“软件保护和许可服务”的解决方案,听起来如您所愿。它是从微软项目中衍生出来的。它将代码的某些部分提取并移动到一个加密的 dll 中,该 dll 运行在一个也被加密的 .Net VM 上,特别是对于我理解的那个应用程序/客户端,所以它应该是非常安全的。

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

不知道有什么免费的替代品。

问候 GJ

于 2011-07-25T12:26:13.997 回答
2

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

于 2011-07-25T12:20:06.443 回答