首页
论坛
专栏
课程

[原创]开源一个获取 windows’s PE 的符号 Url 的工具

2019-3-12 16:28 2298

[原创]开源一个获取 windows’s PE 的符号 Url 的工具

2019-3-12 16:28
2298
换台电脑,在不好的网络环境下,启动调试时下载符号是异常痛苦的,VS/windbg经常会装死给你看。

某个版本notepad.exe的符号下载路径如下,这个Url用迅雷下载很快。

http://msdl.microsoft.com/download/symbols/notepad.pdb/57060987A4344E1A9B9B77F57D14388A2/notepad.pdb

问题是如何得到 57060987A4344E1A9B9B77F57D14388A2,注意最后一个字符是pdb的age,相关API为dbghelp!RetrievePdbInfo.

IDA/windbg symchk.exe/dbghelp.dll/symsrv.dll:
 第一次断:
  wininet!InternetConnectW
  
某次调试的栈:
RetAddr           : Args to Child                                                           : Call Site
00000000`5c9c7a3c : 00000000`00e79090 00000000`00e79950 00000000`00e79928 00000000`00000002 : symsrv!SymbolServerGetIndexStringW
00000000`5cecffd8 : 00000000`00e79090 00000000`00e79950 00000000`00e79928 00000000`00000002 : symsrv!SymbolServerW+0x9c
00000000`5ceb591a : 00000000`01210080 00000000`00e7a1c0 00000000`00e79f90 00000000`00e79950 : dbghelp!symsrvGetFile+0x1f8
00000000`5ceb6d75 : 00000000`013862d0 00000000`01386b78 00000000`01386b68 00000000`00000000 : dbghelp!diaLocatePdb+0x4da
00000000`5cee5234 : 00000000`013862d0 0000000a`197e0235 0000b778`00000004 00000000`0000ad78 : dbghelp!diaGetPdb+0x285
00000000`5cee2ee6 : 00000000`013862d0 00000000`00000020 00000000`01380860 00000000`00e7ae50 : dbghelp!GetDebugData+0x3b4
00000000`5cee3692 : ffffffff`ffffffff 00000000`01380860 00000000`00000000 00000000`00e7b0f0 : dbghelp!modload+0x3a6
00000000`5cedadc5 : ffffffff`ffffffff 00000000`0122adf0 00000000`00000000 00000000`00000000 : dbghelp!LoadModule+0x542
00000000`5cedaef4 : ffffffff`ffffffff 00000000`00000000 00000000`00e7b950 00000000`00000000 : dbghelp!SymLoadModuleEx+0x85
00007ffb`3d4729ae : ffffffff`ffffffff 00000000`00000000 00000000`00e7b950 00000000`00000000 : dbghelp!SymLoadModule64+0x54
00007ff7`8c6e85b2 : 00000000`00e7dff0 00000000`00bb7c30 00000000`00000045 00000000`00000002 : SymbolCheck!SymbolCheckByFilenameExA+0x68e
00007ff7`8c6e5d6f : 00000000`00bb7280 00000000`00e7f8c0 2b87a538`80000000 00007ffb`4930e91a : SymChk!SymChkCheckFiles+0x292
00007ff7`8c6f136a : 00000000`00000002 00000000`00bb7220 00000000`00000000 000008c7`009fc00d : SymChk!main+0x1df
00007ffb`4c923034 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : SymChk!GetFileIndex+0x23a
00007ffb`4ce81461 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : KERNEL32!BaseThreadInitThunk+0x14
00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x21

明码在github:
https://github.com/DeDf/DownloadPDB


[推荐]看雪企服平台,提供安全分析、定制项目开发、APP等级保护、渗透测试等安全服务!

最后于 2019-3-12 16:31 被囧囧编辑 ,原因:
上一主题 下一主题
最新回复 (7)
VCKFC 2019-3-12 20:00
2
0
有想法
syser 2019-3-13 14:13
3
0
真的 这想法非常好 每次加载符号真的很痛苦
zplusplus 1 2019-3-14 10:20
4
1
dumpbin /headers 里的debug header了解一下?
isdebug 2019-3-14 14:33
5
0
其实吧,都卸载pe头里面了..
VCKFC 2019-3-16 15:42
6
0
佩服 , 知识面全面啊 
WinDos2K 2019-3-19 10:19
7
0
为什么符号下载下来全都是blob,不是pdb。
Editor 2019-3-20 09:37
8
0
感谢分享哇!
游客
登录 | 注册 方可回帖
返回