混淆或保护.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游戏行业很久以前所倾向的那样,没有任何代码可以安全地破解。