我在我的代码上尝试了Visual Studio 2010附带的标准DotNetObfuscator。
我没有更改代码的任何标准设置。我对这个工具的行为感到有些困惑。我试图通过加载反射器中的两个组件来比较这些值。
某些事情已经发生了变化,但我仍然能够像原始程序集一样阅读该方法。在使用此工具之前,是否需要更改某些设置?答案 0 :(得分:2)
不确定您看到了什么,但公共方法名称不得混淆 - 由于它们是公开的,因此必须由程序集外的调用者保持可调用状态。私有(可能是内部)方法的名称可能会被混淆,方法中的实现细节也可以,但即使名称是奇数,仍然可以使用Reflector读取。各种混淆工具可能提供进一步的功能,有助于防止使用像Reflector这样的工具,但可能会产生可验证IL的能力或我不太了解的其他方式。
混淆不是加密的手段 - 它只会减慢读者的速度。