《调试软件》作者主页

 

调试软件

http://advdbg.org/books/swdbg/index.aspx

 

在写作《软件调试》的过程中,我使用了很多工具,包括十几种调试器和上百个不同用途的观察和监视工具。因为现有的工具不能满足写作书中某些内容的需要,于是我还专门开发了一些工具,以下是其中的几个:

  • 符号文件观察器——SymView
  • 用户态转储文件观察器——UdmpView
  • 与内核调试引擎对话的交谈器——KdTalker
  • 监视和记录CPU执行轨迹的CpuWhere
  • 观察GDT、IDT的SoZoomer

您在接受以下协议的情况下,可以自由使用以上工具:

  • 这些工具是免费提供给《软件调试》一书的读者的。如果你没有购买这本书,那么你应该感谢那些已经购买了这本书的朋友。
  • 这些工具可能存在瑕疵,不管是否是工具自身的原因,这些工具的作者都不对使用这些工具导致的任何直接或者间接损失负任何责任。

在将以上工具公开前,我还需要对它们做一些测试和完善工作。比如使其适合更多的平台(CPU和OS),使其界面更友好等。所以我会逐步公开以上工具,请大家耐心等待!

 

虽然本书的重点不是编程语言和如何编写代码,但是为了不流于空泛,我们还是给出了大量的代码实例。这些实例可以分为如下几类:

pdb_notepad.gif  

可见除了Type命令显示的签名外,后面还有两个可读的ASCII码,即第二行的JG。这个JG代表什么呢实上,它就是我们要说的PDB魔码(Magic Code)。它紧跟在PDB签名后面,长度为四个字节。

上面的PDB文件是VC6产生的,被称为PDB2.0,如果观察VS 2003/2005/2008产生的PDB7.0的文件,那么会发现它的PDB魔码为DS。

为了理解PDB魔码的含义,我开始了艰苦的搜索。搜索很久后,仍一无所获。关于PDB内部格式的文章实在是少。仔细阅读了《Undocumented Windows 2000 Secrets》,也没有答案。但是在搜索的过程中,我发现了Andy Penell的博客。他在名为《“PDB过时了”意味着什么》的短文中介绍了PDB签名。

http://blogs.msdn.com/andypennell/archive/2005/12/09/502267.aspx

读了这篇短文,我立刻意识到Andy可能是给我答案的专家。于是我在这篇博客的评论中先向他提了一个问题,并随便提到DS:

Monday, April 23, 2007 11:11 PM by Raymond Zhang

Andy, could you advise what does MSF mean in the signature. As I know, the signaure is followed by DS.

Andy很快就回复了,对MSF的解释与我猜测的相同。最重要的是他把我暗带的问题也回答了,令我喜出望外:

Tuesday, April 24, 2007 12:08 PM by andypennell

转载于:https://my.oschina.net/alphajay/blog/39164

相关资源:管道壁厚计算软件_管道壁厚计算软件-制造工具类资源-CSDN文库

来源:chenqiechun3408

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2012年1月14日
下一篇 2012年1月14日

相关推荐