ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

逆向调试符号

2022-08-24 17:32:19  阅读:149  来源: 互联网

标签:逆向 xxx 文件 符号 sig 格式 调试


逆向调试符号

定义

调试符号是被调试程序的二进制信息与源程序信息之间的桥梁,是在编译器将源文件编译为可执行程序的过程中为支持调试而摘录的调试信息。调试信息包括变量、类型、函数名、源代码行等。


格式分类

1.SYM格式

SYM格式早期用于 MS-DOS 和 16位Windows系统,现在只作为Windows9x的调试符使用(因为Windows9x系统的多数内核仍然是16位的)


2.COFF格式

COFF格式(Common Object File Format)是UNIX供应商所遵循规范的一部分,由WindowsNT2.1首次引进使用。现在,微软逐渐抛弃了COFF格式,转而使用更为流行的符号表达式。


3.CodeView格式

CodeView(CV)最早是在MS-DOS下作为Microsoft C/C++ 7的一部分出现的,现在已经支持Win32系统了。“CodeView”是早期微软调试器的名次,其支持的调试符号为C7格式。C7格式在执行模块中是自我包含的,符号信息与二进制代码混合(意味着调试方式会非常大)


4.PDB格式

PDB(Program Database)格式是现今最常用的一种符号形式,是微软自己定义的未公开格式。Visual C++和 Visual Basic 都支持PDB格式。与“CV”不同的是,PDB符号根据应用程序不同的链接方式保存在单独的或多个文件中。


5.DBG格式

DBG是系统调试符。有了系统调试符,调试器才可以显示系统函数名。DBG文件与其他符号格式不同,因为链接器并不创建DBG文件。DBG文件基本上是一个包含其他调试符的文件(例如包含COFF或C7等类型的调试符)微软将操作系统调试符分配在DBG文件中。当然,这些文件中只包含公用信息和全局信息,例如ntdll.dbg、kernel32.dbg等。


6.MAP文件

MAP文件是程序的全局符号、源文件和代码行号信息的唯一文本表示方式。MAP文件在任何地方、任何时候都可以使用,不需要程序支持,通透性极好。


生成调试符号的工具

1.Dumpbin

介绍

dumpbin.exe在VS的VC目录下,通过dumpbin命令来获取dll文件或者lib文件里面包含的函数

image-20220823103546914


使用方法

  • 导出dll文件里的函数:dumpbin.exe /exports xxx.dll /out xxx.txt
  • 导出lib文件里的函数:dumpbin.exe /exports xxx.lib /out xxx.txt

2.Flirt

介绍

利用flirt工具针对lib文件生成对应的sig文件,然后导入ida中可以自动识别出函数名,ida导入sig文件后生成对应的map文件可导入OD中识别函数名,实现“动静结合”的调试方式


使用方法

进入flirt文件夹目录,找到如下图所示的两个可执行文件

image-20220823104335414


执行以下命令生成对应的sig文件

pcf.exe xxx.lib xxx.pat  //创建模式文件(pat文件)
sigmake.exe xxx.pat xxx.sig  //创建签名文件(sig文件)

将sig文件拖入ida目录下的sig文件夹

image-20220823104529707


打开ida导入对应的sig文件

image-20220823104600149


利用ida生成map文件,随后将map导入od

image-20220823104632394

image-20220823104643873


3.IDR

介绍

IDR用于生成逆向delphi语言的调试符号, 可以准确获取各种事件的位置, 也可以生成map配合OD进行分析


使用方法

打开IDR,将delphi编写的程序拖入IDR中,然后IDR会加载一段时间

image-20220823104903221


切换到forms,并且勾选上form,下面三行字代表程序的各种事件

image-20220823104922211


如下图所示,edit表示编辑框,bitbtn表示按钮,右边的窗口界面记录着对应事件的汇编代码

image-20220823105030095


利用IDR生成delphi语言的map,随后可导入OD进行动态分析

image-20220823105142233

标签:逆向,xxx,文件,符号,sig,格式,调试
来源: https://www.cnblogs.com/henry666/p/16620942.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有