Windbg的调试符号目录分析

pdb存放目录及可执行文件存放目录分析

Posted by QH on July 9, 2020

Windbg的调试符号目录分析

在使用Windbg调试或者分析dump文件时候,看到pdb文件在一串hash字符串目录下。如下图 Windbg查看ole32模块信息

在网上有人分析了这串字符的来历windbg符号文件夹中像MD5的文件夹名如何生成。通过该文章的分析可以知道这串神秘的字符是一个GUID,存储在PE文件的 Debug Diretory 中,在 Debug Directory 数据区有一个 RSDS 开头的标识字符串,它后面跟的就是这个GUID,以上图中的ole32模块为例,可以得到GUID为 A7979392-CC73-4F4E-95DE00B85A83B45B,然后再追加上后面的 02,就是最终的目录名了 ole32的Debug Directory中的RSDS

Windbg在缓存可执行文件时,会根据dll的生成时间戳和Image大小,生成对应的目录,还是以ole32模块为例,时间戳为 5D3FA875,ImageSize为 0015F000,所以该版本的ole32文件存放在 5D3FA87515F000 目录下。 保存ole32模块的目录组成 本地ole32模块的目录位置

也可以通过PE文件拿到时间戳和ImageSize这两个信息,如下图所示 ole32 PE文件的时间戳和ImageSize