我知道我们可以通过使用混淆器来保护 .Net 应用程序免于反编译。
但我在某处读到有一些反混淆器(如 de4dot )可以反混淆 .Net 混淆应用程序。他们可以中和一些混淆器的影响,比如 Eazfuscator.NET 。因此,他们甚至可以反编译经过混淆的 .Net 应用程序。
那正确吗?如果是,如何保护应用程序免受反混淆器的攻击?
我知道我们可以通过使用混淆器来保护 .Net 应用程序免于反编译。
但我在某处读到有一些反混淆器(如 de4dot )可以反混淆 .Net 混淆应用程序。他们可以中和一些混淆器的影响,比如 Eazfuscator.NET 。因此,他们甚至可以反编译经过混淆的 .Net 应用程序。
那正确吗?如果是,如何保护应用程序免受反混淆器的攻击?
简而言之,你不能。你只能让人们的生活变得困难,但最终,如果他们想访问你的代码,他们可以做到。
没有应用程序是 100% 受到保护的,但是商业混淆器在使它变得困难方面做得很好。
使用混淆器来防止这种情况 - 混淆器会改变结构,但不会改变源代码的含义/意图,从而使破解者/黑客很难理解代码。看看Crypto Obfuscator,它采用了各种技术,如符号重命名、字符串加密、控制流混淆等。
它还具有针对 de4dot 的特殊防御 - 如果您尝试在使用 Crypto Obfuscator 混淆的程序集上运行 de4dot,它将崩溃。
免责声明:我为 Crypto Obfuscator 的开发商 LogicNP Software 工作。
为什么不?你可以试试ILProtector。它是免费的 .NET 保护器。它使用代码虚拟化保护 .NET 代码。在这种情况下,与混淆相比,代码保护级别增加了许多倍。de4dot、IL DASM 或 .NET Reflector 等反汇编器和反编译器无法识别您的代码。