在 Microsoft Symbol Server 上定位 PDB 文件
2008-11-19 14:15
393 查看
原文链接:http://www.titilima.cn/?action=show&id=281
Windows 系统文件的调试符号保存在 Microsoft Symbol Server 上面,每个文件的链接格式为:
http://msdl.microsoft.com/download/symbols/PDB 文件名/PE 特征签名/PDB 文件名.pd_
其中,PE 映像签名和 PDB 文件名都保存在 PE 文件的 IMAGE_DIRECTORY_ENTRY_DEBUG 数据目录之中,遵循如下的数据结构定义:
typedef struct _tagCV_RSDS {
DWORD dwHeader;
GUID Signature;
DWORD dwAge;
CHAR pdb[1];
} CV_RSDS, *PCV_RSDS;
这个结构各个域的含义如下:
dwHeader 的值应为 0x53445352 ,即字符串 "RSDS" 。
Signature 为 PE 的映像签名。
dwAge 域和 Signature 组合使用,成为 PE 的特征签名。
pdb 为该 PE 对应的 PDB 文件名。
以一个 kernel32.dll 为例(版本 5.1.2600.2945),它的 CV_RSDS 结构如下图:
这样一来,便可得到它的特征签名为 "BCE8785C57B44245A669896B6A19B9542" ,完整的下载链接为:
http://msdl.microsoft.com/download/symbols/kernel32.pdb/BCE8785C57B44245A669896B6A19B9542/kernel32.pd_
需要指出的是,下载这个文件的时候,需要将 HTTP 请求的 agent 参数设置为微软所允许的字符串,否则就有可能(并不是必然,原因不明)被 Microsoft Symbol Server 拒绝。因此,推荐使用 srmsrv.dll 中的 agent ,如 "Microsoft-Symbol-Server/6.9.0003.113" 。
在下载完成后,就可以使用 Windows 自带的 expand.exe 来解压缩 kernel32.pd_ 了。
Windows 系统文件的调试符号保存在 Microsoft Symbol Server 上面,每个文件的链接格式为:
http://msdl.microsoft.com/download/symbols/PDB 文件名/PE 特征签名/PDB 文件名.pd_
其中,PE 映像签名和 PDB 文件名都保存在 PE 文件的 IMAGE_DIRECTORY_ENTRY_DEBUG 数据目录之中,遵循如下的数据结构定义:
typedef struct _tagCV_RSDS {
DWORD dwHeader;
GUID Signature;
DWORD dwAge;
CHAR pdb[1];
} CV_RSDS, *PCV_RSDS;
这个结构各个域的含义如下:
dwHeader 的值应为 0x53445352 ,即字符串 "RSDS" 。
Signature 为 PE 的映像签名。
dwAge 域和 Signature 组合使用,成为 PE 的特征签名。
pdb 为该 PE 对应的 PDB 文件名。
以一个 kernel32.dll 为例(版本 5.1.2600.2945),它的 CV_RSDS 结构如下图:
这样一来,便可得到它的特征签名为 "BCE8785C57B44245A669896B6A19B9542" ,完整的下载链接为:
http://msdl.microsoft.com/download/symbols/kernel32.pdb/BCE8785C57B44245A669896B6A19B9542/kernel32.pd_
需要指出的是,下载这个文件的时候,需要将 HTTP 请求的 agent 参数设置为微软所允许的字符串,否则就有可能(并不是必然,原因不明)被 Microsoft Symbol Server 拒绝。因此,推荐使用 srmsrv.dll 中的 agent ,如 "Microsoft-Symbol-Server/6.9.0003.113" 。
在下载完成后,就可以使用 Windows 自带的 expand.exe 来解压缩 kernel32.pd_ 了。
相关文章推荐
- 使用 Microsoft Symbol Server 获取调试符号文件
- 使用 Microsoft Symbol Server 获取调试符号文件
- 使用 Microsoft Symbol Server 获取调试符号文件
- 使用 Microsoft Symbol Server 获取调试符号文件
- 使用 Microsoft Symbol Server获取调试符号文件
- 使用Microsoft Symbol Server获取调试符号文件和DUMP文件具体分析方法
- 使用 Microsoft Symbol Server 获取调试符号文件
- 使用 Microsoft Symbol Server 获取调试符号文件
- 无法打开物理文件 "X.mdf"。操作系统错误 5:"5(拒绝访问。)"。 (Microsoft SQL Server,错误: 5120)解决
- 解决 vs2010 连接sql 2005 时 报错未能加载文件或程序集“Microsoft.SqlServer.Management.Sdk.Sfc
- 无法打开物理文件xxx.mdf操作系统错误 5:“5(拒绝访问。)” (Microsoft SQL Server,错误: 5120)的解决方法
- 让Visual Studio载入Symbol(pdb)文件
- Microsoft Office SharePoint Server 2007的文件目录结构
- 《Microsoft SQL Server 2008 MDX Step by Step》附加MDF文件失败的解决办法
- 让Visual Studio载入Symbol(pdb)文件
- 将.mdf和_log.ldf的文件添加到Microsoft SQL Server的方法
- 解决vs2010“创建或打开C++浏览数据库文件 发生错误”的问题 Microsoft SQL Server Compact 3.5
- 解决vs2010“创建或打开C++浏览数据库文件 发生错误”的问题 Microsoft SQL Server Compact 3.5
- mdb数据库文件如何导入Microsoft SQL Server 2008中
- [10月15日的脚本] 从Microsoft SharePoint Server 2010中获取签出文件列表