3

我想以编程方式从 micrsoft 符号服务器 ( http://msdl.microsoft.com/download/symbols ) 下载符号。例如,给定名称“ntdll.dll”,我想将 .pdb 保存到任何目录中。

dbghelp.dll 中的 API 似乎可以解决这个问题。(http://msdn.microsoft.com/en-us/library/windows/desktop/ms679291%28v=vs.85%29.aspx)但我不知道如何以正确的方式使用它们。

有没有人以前做过这样的事情并且可以给我看一些示例代码?

谢谢!

4

1 回答 1

4

我从来没有做过这样的事情但我很感兴趣去看。您的朋友就是dbghelp.dllSymXxx中的函数。

以 开头,SymSetOptions后跟SymInitialize。然后,完成繁重工作的函数是SymFindFileInPath。第二个参数 (SearchPath) 是分号分隔的搜索路径,可能包括SRV*.

symchk.exe 是 symchk.exe,可以完全满足您的需求(几乎是,仅此而已)。看看它的导入表,注意它使用了不超过 9 个来自 dbghelp 的函数(并且没有诸如 winhttp 之类的“网络”DLL)——所以这应该会给你一个很好的线索,如何继续,以及你应该使用哪些方法利用。

于 2013-05-28T07:03:36.440 回答