在我看来,混淆似乎是一种落入“安全性靠模糊”或“虚假保护感”阵营的想法。为了保护知识产权,有版权;为了防止发现安全问题,有“修复这些问题”。简而言之,我认为这是对社会问题的技术解决方案。这几乎从来不奏效。
然而,我似乎是我们开发团队中唯一持此观点的人,所以我可能是错的,或者只需要有说服力的论据。我们的产品使用.NET,一个开发人员建议使用.NET Reactor(顺便说一下,这个SO线程也建议了它)。
.NET Reactor通过将任何纯.NET程序集(用C#、VB.NET、Delphi.NET、J#、MSIL编写)与本机机器代码混合,完全阻止了任何反编译。
所以,基本上你一下子就放弃了字节码的所有优势?
混淆有好的工程化益处吗?