如何生成SoftICE可用的调试符号文件*.NMS

导读:

除了可以直接从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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值