VS 编译的 PE 文件的所有调试信息是否都包含在外部 PDB 文件中?

逆向工程 聚乙烯 编译器 调试符号 数据库
2021-07-02 21:17:07

在这里读到一些 PE 文件将调试信息嵌入到 PE 文件中。这仅适用于较旧的 PE 文件吗?

假设所有 Visual Studio 编译的 PE 文件都在外部 PDB 文件中包含所有调试信息(如果有),即不包含除 PDB 文件路径之外的调试信息,是否安全?

1个回答

版本的 link.exe 支持/debugtype使用这些选项参数:

/debugtype:coff    
   use COFF format
/debugtype:cv
   use CodeView or Program Database format (depends on /pdb option) 
/debugtype:both   
   use both COFF and CodeView/Program Database formats

根据 Visual Studio 2008链接器的 MSDN 文档,该选项不再可用;并且/debug开关的信息指出“无法创建包含调试信息的 .exe 或 .dll。调试信息始终放置在 .pdb 文件中。”

因此,过去十年使用 Microsoft 工具构建的任何东西都不会嵌入符号信息。