很抱歉成为坏消息的承担者,但确实没有简单的方法可以做到这一点。
我发现最简单的方法是使用 Chromium Symbol 服务器,它位于:
http://chromium-browser-symsrv.commondatastorage.googleapis.com
需要注意的是,64 位 Windows 上的 Chrome 发行版似乎缺少这些符号。至少我没有运气得到它们。
在一般情况下,您可以按照以下说明获取预加载到本地缓存中的良好符号集合。
为了在 IDA pro 中使用符号服务器功能,您必须做一些事情。
首先,您必须安装 Windows 调试工具。 (Windows 8.1 DDK 是一个很好的选择,可从 Microsoft 免费获得。)它包含允许与符号服务器进行简单通信的 DLL。
其次,您需要添加一个全局系统环境变量,如下所示:
_NT_SYMBOL_PATH=srv*c:\pdb_cache*msdl.microsoft.com/download/symbols;srv*c:\pdb_cache*http://chromium-browser-symsrv.commondatastorage.googleapis.com
它的作用是设置符号路径和关联的本地缓存以存储符号。
第三,您可以使用以下命令行来使用WDK 8.1附带的工具并拉取符号:
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Program Files (x86)\Google" /s symsrv*C:\pdb_cache\*http://chromium-browser-symsrv.commondatastorage.googleapis.com/
上面应该强制符号加载到本地符号缓存中,您可以选择它们(IDA 可能会自动这样做,也可能不会)。如果没有,您可以在 WinDbg/symchk 下载后手动选择符号文件。
至少理论上是这样,根据:http://www.chromium.org/developers/how-tos/debugging
我没有运气在 Chromium 的发布版本上正确下载符号。但是,如果您转到http://chromium-browser-symsrv.commondatastorage.googleapis.com/ 链接并检查返回的 XML 的内容,您会注意到设置了“截断”标志。您可以使用过滤器表达式(它是一个 Amazon S3 存储桶)。仔细研究一下,甚至还有 另一个 符号服务器:http://chromium-browser-symbols.commondatastorage.googleapis.com/ 不过从外观上看,它已经很老了。
我会给你一个脚本来从我的已知符号服务器列表中提取所有符号。对系统上可能需要调试的任何内容进行预加载很有用。 :-)。我还注意到在 Window 7 x64 上没有为 SysWOW64 子系统下载符号。如果其他人有任何关于其他公共符号服务器的信息,那将是受欢迎的:-)。
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Program Files (x86)" /s symsrv*c:\symbols*hxtp://msdl.microsoft.com/download/symbols
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Program Files (x86)" /s symsrv*c:\symbols*hxtp://symbols.mozilla.org/firefox
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Program Files (x86)" /s symsrv*c:\symbols*hxtp://chromium-browser-symsrv.commondatastorage.googleapis.com
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Program Files (x86)" /s symsrv*c:\symbols*hxtp://ctxsym.citrix.com/symbols
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Program Files (x86)" /s symsrv*c:\symbols*hxtp://developer.apple.com/internet/safari/windows_symbols
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Program Files" /s symsrv*c:\symbols*hxtp://msdl.microsoft.com/download/symbols
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Program Files" /s symsrv*c:\symbols*hxtp://symbols.mozilla.org/firefox
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Program Files" /s symsrv*c:\symbols*hxtp://chromium-browser-symsrv.commondatastorage.googleapis.com
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Program Files" /s symsrv*c:\symbols*hxtp://ctxsym.citrix.com/symbols
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Program Files" /s symsrv*c:\symbols*hxtp://developer.apple.com/internet/safari/windows_symbols
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://msdl.microsoft.com/download/symbols
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://symbols.mozilla.org/firefox
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://chromium-browser-symsrv.commondatastorage.googleapis.com
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://ctxsym.citrix.com/symbols
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://developer.apple.com/internet/safari/windows_symbols
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://msdl.microsoft.com/download/symbols
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://symbols.mozilla.org/firefox
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://chromium-browser-symsrv.commondatastorage.googleapis.com
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://ctxsym.citrix.com/symbols
"c:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symchk" /r "C:\Windows" /s symsrv*c:\symbols*hxtp://developer.apple.com/internet/safari/windows_symbols
StackOverflow 不允许我使用 http 链接,因此只需将文本编辑器中的 hxtp 替换为 http 即可。
如果您愿意,也可以使用此字符串在您的环境中设置路径。希望这会有所帮助,伙计!
设置
_NT_SYMBOL_PATH=symsrv*c:\symbols*hxtp://msdl.microsoft.com/download/symbols;symsrv*c:\symbols*hxtp://symbols.mozilla.org/firefox;symsrv*c:\symbols*hxtp ://chromium-browser-symsrv.commondatastorage.googleapis.com;symsrv*c:\symbols*hxtp://ctxsym.citrix.com/symbols;symsrv*c:\symbols*hxtp://developer.apple.com /internet/safari/windows_symbols