混淆或保护.Net程序集的最佳方法

我正在寻找一种技术或工具,我们可以用它来混淆或以某种方式保护我们编译的c#代码。 目标不是用户/数据安全,而是阻碍我们软件中某些技术的逆向工程。

这不适用于Web,但适用于桌面应用程序。

那么,你知道有哪些工具可以用来做这类事吗? (他们不需要自由)

如果有的话他们会有什么样的性能影响?

在开发过程中使用调试器时,这会产生任何负面影响吗?

我们在现场记录问题的堆栈跟踪。 混淆会如何影响这个?

这是msdn Obfuscators的一个很好的混淆器列表

  • Smartassembly
  • Dotfuscator .NET Obfuscator
  • Salamander .NET Obfuscator
  • 语义设计 :C#源代码混淆器
  • Spices.Net
  • Thinstall
  • .NET的举止
  • Xenocode Postbuild 2006
  • .NET Reactor
  • 加密混淆器
  • DeployLX CodeVeil

在混淆代码时,我没有发现任何性能问题。 如果您只是发送基于文本的堆栈跟踪,则可能在翻译方法名称时遇到问题。

有些工具也会“混淆”混淆的DLL – 我建议将需要保护的部分转换为非托管组件。

http://xheo.com/products/code-protection

过去为我做过的工作。

你在浪费时间沿着这条路走下去。 如果您有不希望任何人看到的代码,您需要将其关在门外。 例如,仅使用Web服务接口在您自己的服务器上执行该代码。

混淆代码只能阻止最随意的人。 正如video游戏行业很久以前所倾向的那样,没有任何代码可以安全地破解。