由于一些反射操作,我需要从Dotfuscator ce obfuscation中排除一些方法:
[Obfuscation(Exclude = true)]
internal MyMethod (String input1)
{
string member1 = "hello"
string member2 = "world"
[...]
}
Obfuscation
属性可以完成这项工作,但现在也不再混淆该方法的完整内容。我怎样才能做到名称MyMethod
不会被混淆,但成员member1
、member2
等仍然被混淆?
(注意:我在Dotfuscator团队工作,并以这种身份回答。
局部变量(称为"成员"(的名称与其他调试信息一起存储在程序数据库 (.pdb
( 文件中,而不是程序集(.dll
或 .exe
文件(。Dotfuscator 重命名程序集中的代码项,但不重命名.pdb
中的局部变量。
我们假设关注逆向工程的客户不会运送.pdb
,因为它包含行号和源文件信息,这将使逆向工程过程变得容易,即使使用混淆的程序集也是如此。
但是,Dotfuscator 仍然可以生成.pdb
文件用于内部测试和调试。如果您希望 Dotfuscator 社区(以前称为 Dotfuscator CE(停止这样做,请在 Dotfuscator 的用户界面中打开您的配置文件,转到设置 -> 常规并取消选中发出调试符号。