我的产品有几个组件:ASP.NET,Windows Forms App和Windows Service.95%左右的代码是用VB.NET编写的.
出于知识产权的原因,我需要对代码进行模糊处理,直到现在我一直在使用现已超过5年的dotfuscator版本.我认为现在是时候转向新一代工具了.我正在寻找的是在搜索新的混淆器时我应该考虑的一系列要求.
我知道到目前为止我应该寻找的东西:
我相信SO上的很多读者都使用Lutz Roeder的.NET反射器来反编译他们的.NET代码.我很惊讶我们的源代码可以从编译的程序集中重新编译.
我有兴趣听听你们中有多少人使用混淆,以及使用什么类型的产品?
我确信这是一个更重要的问题,例如,您提供的通过互联网下载的.NET应用程序,而不是针对特定客户端定制的内容.
在我看来,混淆是一种落入"默默无闻"或"虚假保护"阵营的想法.为保护知识产权,有版权; 为了防止发现安全问题,我们正在解决这些问题.简而言之,我认为它是解决社会问题的技术方案.那些几乎从不工作.
但是,我似乎是我们开发团队中唯一一个有这种感觉的人,所以我要么错了,要么只需要令人信服的论据.我们的产品使用.NET,并且一个开发人员建议使用.NET Reactor(顺便提一下,这个SO线程也是如此).
.NET Reactor通过将任何纯.NET程序集(用C#,VB.NET,Delphi.NET,J#,MSIL编写)与本机机器代码混合,完全阻止任何反编译.
所以,基本上,你一次性抛弃字节码的所有优点?
混淆是否有良好的工程效益?