D:\Symbols;SRV*D:\Symbols*http://msdl.microsoft.com/download/symbols
PDBSYM_DOWNLOAD_PATH = "c:\\sym"。
C:\WinDDK\7600.16385.1\Debuggers\windbg.exe
很多人跟踪到Windows自带的DLL里的时候有时会很茫然……
突然找到一种方法能让它们都有符号表……
然后里面的各种变量名、函数名等全部显现出来……
设置方法:
“我的电脑”属性中,高级设置里,
有个环境变量,
变量名:_NT_SYMBOL_PATH
变量值:SRV*D:\Symbols*http://msdl.microsoft.com/download/symbols/
将“{$Path}”替换为要存储pdb符号表文件的路径,比如:C:\PDB
于是在VC里写程序调试时,或者用IDA时,都会从网上自动下载符号表……
msvcrt.pdb,ole32.pdb,System.Data.pdb,ws2_32.pdb,WebDev.WebServer.pdb……
但是VC运行程序时会自动下载完所有要用到的pdb,所以第一次启动会很慢,若想立即看结果,只要把网络断开就行了……
仅此分享……
2
没分析原理,解决方案大概是在symsrv.dll的目录(IDA根目录)下建立一个叫做“symsrv.yes”文件,也可以直接从WinDBG的目录中复制过去。 估计是symsrv.dll或者相关的dll会检测这个文件来判断是否可以从符号服务器下载文件。 |
3
使用 SymChk.exe 实用程序下载符号
loadTOCNode(2, 'moreinformation'); 您可以使用 SymChk.exe 实用程序验证符号并以方便、非入侵性的方式生成本地符号高速缓存。SymChk.exe 实用程序随 Debugging Tools for Windows 软件包提供。SymChk.exe 是一种命令行工具。您可能需要将 Debugging Tools for Windows 软件包的文件夹添加到系统上的 PATH 环境变量,以便从任意命令提示符下访问该工具。要使用 SymChk.exe 实用程序下载 Windows\System32 文件夹中所有组件的符号文件,请使用以下命令行命令:
- “/r c:\windows\system32”查找 System32 文件夹和所有子文件夹中的所有符号文件。
- “/s SRV*c:*http://msdl.microsoft.com/download/symbols”指定用于符号解析的符号路径。在此例中,“c:\symbols”是将在其中从符号服务器复制符号的本地文件夹。