导读:
本文转自
http://www.pediy.com/bbshtml/BBS3/Forum831.htm
除了可以直接从PE文件中提取出其Export Table中的函数符号名之外,SoftICE可以直接使用的调试符号文件只有*.NMS。
得到可执行程序的NMS文件的途径如下:
1、DBG/PDB->NMS
如果在编译时生成了*.DBG/*.PDB文件,直接用SoftICE Symbol Loader打开*.DBG文件,然后选择菜单Module->Translate即可生成*.NMS。在Translate选项中选择Include source则生成的*.NMS中包含有程序源码(当然前提是*.DBG/*.PDB中有源码),就可以在源码一级进行调试,否则NMS文件只包含符号名而没有源码。Windows系统本身的符号文件在其安装光盘上有。
SoftICE自带的命令行工具(在其util16目录下)dbg2map.exe还可以将DBG转换成MAP文件,参考下面的3。
2、SYM->NMS
可以用SoftICE自带的命令行工具nmsym.exe将*.SYM转换成*.NMS。
3、MAP->NMS
如果没有可执行程序的源码,也没有*.DBG/*.PDB文件,可以先用IDA对程序进行反汇编,IDA可以识别出常用的库函数并生成*.MAP文件(链接器link.exe、tlink.exe也可以生成MAP文件,当然必须是自己写的程序)。再利用SoftICE自带的命令行工具msym.exe将MAP转换成SYM文件,然后参考上面的2得到NMS文件。
对于没有源码的COM组件,还可以利用Matt Pietrek写的TLBDBG(http://www.microsoft.com/msj/0399/code/TLBDBG.zip)根据其TypeLib得到MAP/DBG文件,进而再得到NMS文件。注意TLBDBG只能处理进程内COM服务器。
当然上述文件格式的转换还可以用其它工具来完成。
要加载*.NMS文件,只需在SoftICE Symbol Loader的菜单Edit->SoftICE Initialize Settings->Symbols中指定相应的NMS文件并重启即可。
作者;Netguy
本文转自
http://www.pediy.com/bbshtml/BBS3/Forum831.htm
本文介绍如何使用SoftICE及配套工具将不同类型的调试符号文件转换为可直接使用的*.NMS格式,包括从DBG/PDB文件、SYM文件及MAP文件转换的方法。
1048

被折叠的 条评论
为什么被折叠?



