首页
社区
课程
招聘
[分享]Get windows symbol file
2020-7-23 13:16 6025

[分享]Get windows symbol file

2020-7-23 13:16
6025

分享+记录 获取windows符号文件的方式。

 

由于新版的windows系统已不提供单独的符号下载,windbg下载符号文件也时常失败。
这里我们借用微软提供的工具包中的symchk.exe下载符号文件。
symchk.exe 所在路径:C:\Program Files (x86)\Windows Kits\10\Debuggers\x64 与 windbg.exe 在同一路径下。

 

SymChk的基本语法如下:

symchk [/r] FileNames /s SymbolPath

FileNames指定一个或多个需要其符号的程序文件。如果FileNames是目录并且使用/ r标志,则将以递归方式浏览该目录,SymChk将尝试在此目录树中查找所有程序文件的符号。SymbolPath指定SymChk在何处搜索符号。
要限制搜索以使其仅查找公共符号文件,请使用带有/ s参数(/ ss)的s选项。

 

用法示例:

symchk.exe /r D:\resource\IDA内核函数符号文件\Ntoskrnl\10.0.19041\ntoskrnl.exe /s SRV*D:\resource\IDA内核函数符号文件\Ntoskrnl\10.0.19041\*http://msdl.microsoft.com/download/symbols

SYMCHK: FAILED files = 0
SYMCHK: PASSED + IGNORED files = 1

我详细解释每个参数的意思:
D:\resource\IDA内核函数符号文件\Ntoskrnl\10.0.19041\ntoskrnl.exe 是我需要下载其符号文件的exe所在路径;
SRVD:\resource\IDA内核函数符号文件\Ntoskrnl\10.0.19041\http://msdl.microsoft.com/download/symbols
指定符号服务器为http://msdl.microsoft.com/download/symbols,
并将下载的符号文件保存至D:\resource\IDA内核函数符号文件\Ntoskrnl\10.0.19041\路径下;

 

如果需要获取一个目录下所有的程序文件其的符号文件,例如:

symchk.exe /r c:\windows\system32\ /s SRV*C:\MySymbols\*http://msdl.microsoft.com/download/symbols

将下载c:\windows\system32下的所有程序文件的符号文件,用时较久。

 

下载好符号文件以后,我们用IDA打开分析对应的程序文件时,如果提示:
failed to load pdb info,no such interface supported.(无法加载pdb信息,不支持此类接口)
安装vc ++ 2008 运行库,即可解决问题。
下载VC++ 2008 运行库

 

本文参考:
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/using-symchk

 

上传了两个附件
vcredist_x64.exe 为 vc ++ 2008 运行库 的安装文件;
win10.19041程序文件+符号文件.zip 中包含了 win10 2004 最新的 ntoskrnl.exe 与其符号文件。


[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

最后于 2020-7-23 14:27 被随风行编辑 ,原因:
上传的附件:
收藏
点赞1
打赏
分享
最新回复 (2)
雪    币: 12
活跃值: (104)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
紫天云龙 2020-8-8 05:56
2
0
现在的符号服务器被墙了吧,这种方法应该也用不了了吧
雪    币: 1595
活跃值: (2807)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
随风行 1 2020-8-8 10:44
3
0
紫天云龙 现在的符号服务器被墙了吧,这种方法应该也用不了了吧
符号服务器在墙外面,
。。你不翻墙怎么下?
游客
登录 | 注册 方可回帖
返回