如何生成SoftICE可用的调试符号文件*.NMS
2008-04-11 22:23
399 查看
导读:
除了可以直接从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
除了可以直接从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
相关文章推荐
- CMake生成可用gdb调试的可执行文件
- 汇编写的驱动,能生成符号文件吗?不好调试啊
- pdb 符号文件 如何生成的,作用
- 如何让程序crash时生成coredump文件并用gdb调试
- 如何用masm32编译asm文件,并生成pdb符号文件
- 如何让程序crash时生成coredump文件并用gdb调试
- python2.7如何在win7上生成.exe文件
- 符号文件(.pdb)——Windows 应用程序调试必备
- 转:Linux如何生成.so库文件
- C语言文件编写完成以后 如何生成一个exe.文件啊
- iOS如何生成.a文件
- VIM编辑文件时如何不自动生成以波浪线(~)为结尾的文件
- 如何自动生成Jni的Java层调C++层的头文件
- 如何将XSD文件以及引入import的文件生成相应的C#类。
- C#编程生成的Word2007版本的文件如何兼容Word2003?(通过代码将docx文件转存为doc文件)
- C/C++ Lib库文件nm调试之符号表
- 如何将JAVA生成可执行文件?
- [C++ rudiment]如何生成自己的静态库(lib)文件
- Android中如何提取和生成mp4文件(MediaMUxer)
- 如何生成可执行的jar包文件