检查C#代码混淆的效率

时间:2011-07-20 12:40:51

标签: c# obfuscation reverse-engineering decompiling reflector

我正在评估几个混淆器以保护WPF应用程序中的代码 为了检查每个混淆器在给定组件上完成的工作结果,我使用Red Gate的 .Net Reflector 。在每次混淆之后,我使用 .NET Reflector 打开程序集,看看它是什么样的。

是否足够? .NET Reflector的结果可以被视为混淆质量的指标,还是应该尝试一些其他工具? (不是任何可能的这种工具,但从实际常识的角度来看)。

3 个答案:

答案 0 :(得分:4)

反射器的结果应足以说明反编译的偶然尝试是如何进行的。一些混淆将使代码混淆到程序集甚至不会在Reflector中打开的程度。

任何比这更深入尝试的人都不会被比其他人更高级的混淆所阻止。

答案 1 :(得分:1)

如果Reflector和ILSpy完全拒绝反编译生成的程序集,那将是最好的。我知道存在能够做到这一点的混淆器。

答案 2 :(得分:0)

我的观点是:“这还不够”取决于您的目标应用。混淆绝不是100%安全的代码,它总是让代码解密对于潜在的攻击者来说足够困难,但这一切都取决于“潜在攻击者”将为解压缩应用程序付出多少努力。并且 .NET Reflector 也是一个观众,就像你提到的那样,所以如果它有效,可以通过查看来扣除你,例如:

如果字符串是加密的

如果参数是加密的

如果类名和字段(PWD_USER)被加密 ......

问候。