在哪里可以找到此类信息?我已经阅读了未公开的Windows 2000机密说明,但尚不完整。例如,没有解释第三流格式。我已经看过了,其中给出了有关流的一些常规信息,但仅此而已。

评论

感谢您的回答!我看了给出的链接。看来,这种文件格式的文档并不多。我读了这篇文章,我想知道这个“分配位数组”存储在文件中的什么位置?

如果有人仍在寻找信息,我已确定要读写PDB 7.0(MSF 7.00)。该代码比其他项目清晰得多,因此您可能需要参考它:github.com/jcdickinson/symblr/tree/master/Symblr.Core/Symbols/…

#1 楼

您可以在PDBParse的作者的博客上找到有关PDB的一些信息:


http://moyix.blogspot.fr/2007/08/pdb-stream-decomposition.html
http://moyix.blogspot.fr/2007/10/types-stream.html

本文是有关PDB的很好的参考资料:


http ://www.debuginfo.com/articles/debuginfomatch.html

关于此主题的其他链接:


http://www.informit.com/ article / article.aspx?p = 22685
http://www.informit.com/articles/article.aspx?p=22429&seqNum=5
http://www.wintellect.com/blogs/ jrobbins / pdb文件-每个开发人员必须知道的内容

我希望您能在这些链接中找到快乐;)

#2 楼

这直接来自Microsoft。

https://github.com/Microsoft/microsoft-pdb

评论


俗话说:“开源,源于微软的爱”。好发现! (你是怎么发现的?)

–杂件
2015年10月30日在22:28



@ usr2564301可能是他在Google开始着手切换到Clang时读到的一些新闻

–phuclv
18 Mar 7 '18 at 5:41

#3 楼

由于该格式是Microsoft内部的格式,因此您可能找不到任何官方文档。最好的选择是对格式进行各种逆向工程:



PDB Parser(找到的那个)

PDBparse(在Python中)

酒项目有dbghelp.dll的部分实现,包括PDB解析。

PS我只是记得,有一个名为“ CCI Metadata”的开源Microsoft项目,它确实提供了一些用于读取和写入PDB文件的C#代码。不确定使用它创建自己的PDB解析器的合法性,但它确实提供了可能与您获得的官方文档最接近的信息。

#4 楼

这是我发现的内容:



用PdbXtract探索符号类型信息-来自Mendiat。纯PDB解析器。它仅使用Microsoft的DebugInterface Access(DIA)COM提取类型信息。如果您仅对解析/转储原始PDB信息感兴趣,可以使用DIA的一些替代方法,包括Volatility的开源pdbparse(http://code.google.com/p/pdbparse/)或随附的PDB实用程序。与未公开的Windows 2000秘密书籍。但是,我见过的大多数可在PDB的DIA上使用的实用工具,包括微软自己的Dia2dump,这是http://www.codeproject.com/Articles/37456/How-To-Inspect-the-Content-of- a-Program-Database-P和这个http://www.ishani.org/web/articles/obsolete/pdb-cracking-tool/等。重申一下,PdbXtract不会解析或捕获PDB中可用的大量其他信息,包括:函数,调试流,模块,公共,全局变量,文件,节信息,注入的源,源文件,OEM特定类型,combiland和其他。




帮助我读取.pdb文件-从stackoverflow