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