由于新版的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下的所有程序文件的符号文件,用时较久。
原味链接:[分享]Get windows symbol file-编程技术-看雪论坛-安全社区|安全招聘|bbs.pediy.com