我的产品有几个组件:ASP.NET,Windows Forms App和Windows Service.95%左右的代码是用VB.NET编写的.
出于知识产权的原因,我需要对代码进行模糊处理,直到现在我一直在使用现已超过5年的dotfuscator版本.我认为现在是时候转向新一代工具了.我正在寻找的是在搜索新的混淆器时我应该考虑的一系列要求.
我知道到目前为止我应该寻找的东西:
我开始使用C#时学到的第一件事就是最重要的一件事.您可以使用Reflector或其他工具反编译任何.NET程序集.许多开发人员都不知道这个事实,当我向他们展示他们的源代码时,他们中的大多数都感到震惊.
防止反编译仍然是一项艰巨的任务.我仍在寻找一种快速,简便,安全的方法.我不想混淆我的代码,所以我的方法名称将是a,b,c左右.反射器或其他工具应该无法将我的应用程序识别为.NET程序集.我已经了解了一些工具,但它们非常昂贵.有没有其他方法来保护我的应用程序?
编辑:
我的问题的原因不是防止盗版.我只想阻止竞争对手阅读我的代码.我知道他们会,他们已经做到了.他们甚至告诉过我.也许我有点偏执,但商业竞争对手阅读我的代码并不能让我感觉良好.
我正在寻找一种技术或工具,我们可以用它来混淆或以某种方式保护我们编译的c#代码.目标不是用户/数据安全,而是阻碍我们软件中某些技术的逆向工程.
这不适用于Web,而是适用于桌面应用程序.
那么,你知道有哪些工具可用来做这类事吗?(他们不需要自由)
如果有的话他们会有什么样的表现影响?
在开发期间使用调试器时,这是否有任何负面影响?
我们在现场记录问题的堆栈跟踪.混淆会如何影响这个?
如果用户几乎知道有关.net中的编码的任何信息,并且他们看到.dll,他们就会有不幸的能力来调用你的公共函数和子程序.我知道你可以尝试一个"密钥"系统,它将检查某个"密钥"作为参数,并且只在"密钥"有效时运行代码,但我只运行了一些代码和.dll我当.dll抛出一个未处理的异常时,它向我展示了文件的内容.
你怎么能保护你的.dll?您是否应该只为您愿意承担风险?
我有一个在客户端运行的应用程序,此应用程序向/从远程服务器发送和接收数据.
有什么方法可以保证发送到服务器的数据真的来自允许的应用程序?
当然我可以加密数据,但由于它可以被反编译,它不会使它100%安全.
我们正在使用.net/c#.
谢谢!