运送PDB文件是否使.net中的混淆无效?

Guy*_*Guy 8 .net obfuscation pdb-files eazfuscator

如果我使用Eazfuscator对带有符号名称加密功能的vb.net程序集进行模糊处理(这样我可以使用Eazfuscator堆栈跟踪解码器),如果我发送PDB文件,这是否有效撤消?我想发送PDB文件,以便在堆栈跟踪中获取在错误报告中发回给我的行号.

我知道我可以通过保留发布版本的PDB文件来获取行号,但这是我现在不需要的额外复杂层,我将在未来实现.我只是想通过包含PDB文件来确保我没有有效地发送非混淆代码.

提前感谢任何建议.

And*_*rey 4

PDB 不包含实际代码。但我有一种强烈的感觉,混淆后 PDB 将与二进制不兼容。以下是 PDB 内部的内容

  • 公共、私有和静态函数地址
  • 全局变量名称和地址
  • 参数和局部变量名称以及偏移量在堆栈中的位置
  • 由类、结构和数据定义组成的类型数据
  • 帧指针省略 (FPO) 数据,这是 x86 上本机堆栈行走的关键
  • 源文件名及其行

据我了解,混淆会破坏非公共类型、方法、参数等内容。因此,如果它不改变原始的 IL 偏移量,显示行号可能会起作用,但它会提供一些实际上被混淆的信息,问题是是否可以恢复。

如果您非常关心反混淆,我建议添加丰富的日志记录。