盒子
盒子
Posts List
  1. 0x00 前言
  2. 0x01 IDA Pro简介
  3. 0x02 IDA启动
  4. 0x03 加载可执行文件
  5. 0x04 IDA主要功能界面
  6. 0x05 IDA分析可执行文件
  7. 0x06 IDA功能界面介绍
  8. 0x07 常用快捷键

IDA简单使用

0x00 前言

写这个是因为看了学长发的PPT,发现自己对IDA的许多功能并不是那么的熟悉,所以就把PPT上边的内容手打下来,加深印象,方便查看

0x01 IDA Pro简介

•交互式反汇编器专业版(Interactive Disassembler Professional),人们常称其为IDA Pro,或简称为IDA。是目前最棒的一个静态反编译软件,为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器!

•IDA Pro是一款交互式的,可编程的,可扩展的,多处理器的,交叉Windows或Linux WinCE MacOS平台主机来分析程序, 被公认为最好的花钱可以买到的逆向工程利器。IDA Pro已经成为事实上的分析敌意代码的标准并让其自身迅速成为攻击研究领域的重要工具。它支持数十种CPU指令集其中包括Intel x86,x64,MIPS,PowerPC,ARM,Z80,68000,c8051等等。

上面是百度对IDA的简介

0x02 IDA启动

• IDA负责反编译32位可执行文件,IDA64负责编译64位可执行文件
• 注意,分析文件时,必须把对应的文件放到对应的IDA中分析,否则会出现不能反编译的情况
在这里插入图片描述
• IDA打开后如上图所示
• 其中
     •”New”选项表明反编译新的可执行文件
     •”Go”选项表明直接进入主页面
     •”Previous”选项表明加载已反编译的文件选项

0x03 加载可执行文件

在这里插入图片描述
• 上图界面可识别当前加载的可执行文件类型,这里已识别出文件为EXE可执行文件格式
• 下面”Processor type”选项表明当前处理器类型,IDA能够识别的文件类型可依照IDA默认选项加载可执行文件,如果是IDA不能识别的二进制代码,例如ShellCode代码,可选择”Binary file”方式加载
在这里插入图片描述

• 一旦选择”Binary file”方式加载文件,则需要用户手动填入加载段地址和相对偏移,对应上图”Loading segment”和”Loading offset”选项。该种方式主要应用场景为:分析动态保存的二进制代码、ShellCode二进制代码分析等。
• 选择”Binary file”方式加载文件,IDA不会自动分析代码,用户需根据具体需求自行反汇编二进制代码

0x04 IDA主要功能界面在这里插入图片描述

0x05 IDA分析可执行文件

• IDA会对可识别的文件进行代码反编译,反编译过程一句文件大小而定,例如:几百KB大小的文件,IDA可短时间分析完毕;几M或更大的文件,IDA则自动分析一段时间,越大的文件IDA分析的时间通常会越长(因为可执行文件越大,意味着可执行文件中代码段越大,IDA分析时间自然会更长)。
• 判断IDA分析完毕的方法有:
     •下图IDA的”Output Window”窗口输出”The initial autoanalysis has been finished”日志时,则说明IDA已分析完毕,对应Log如下图所示
在这里插入图片描述
     •上图中IDA界面左下角AU处于”idie”状态时,也表明IDA分析完毕
• 通过以上方式可观察到IDA是否分析完毕。IDA分析完毕之后会将光标停留在需分析的可执行文件入口函数处。如下图分析程序,程序分析完毕之后,IDA把当前光标停留在下图main函数中。
在这里插入图片描述

0x06 IDA功能界面介绍

• 经过IDA的加载和分析过程,用户便可根据需求自行逆向分析。进行逆向分析之前需了解IDA界面有哪些功能,包括:导航条、反汇编窗口、其他辅助分析窗口。
在这里插入图片描述

• 导航栏
     • IDA主界面中存在一项颜色各异的导航条,导航条如下图
在这里插入图片描述

     • 蓝色:表示常规的指令函数,绝大部分为用户编写的代码
     • 黑色:表示间隙部分内容,可执行文件中包含多个节段
     • 银白色:表示数据项部分内容,可执行文件中会包含大量数据
     • 粉色:表示外部导入函数,通常可执行文件会导入外部的库函数
     • 暗黄色:表示IDA未识别的内容,需要用户根据需求自行分析
     • 有个青色,我搜的是库函数

• 反汇编窗口(IDA View-A)
     • 反汇编窗口属于逆向分析过程中关注频率最高的窗口,通过此窗口可以逆向分析反汇编代码。对应下图
在这里插入图片描述
• 反汇编窗口可分为两种模式,分别为:默认模式和流程模式。(空格键转换)
• 默认模式
     • 反汇编窗口默认模式属于使用频率很高的常规模式,对应界面如下图所示:
在这里插入图片描述

• 图形模式
     • 反汇编窗口默认模式中按下键盘的”空格键”便转入图形模式,图形模式界面如下图所示:
在这里插入图片描述
• 其他辅助分析窗口
     • 除了提供反汇编分析窗口,IDA默认界面提供二进制查看编辑窗口、函数窗口、结构窗口、枚举类型窗口、导入函数窗口、导出函数窗口。不同窗口在分析节段起到不同作用。下面介绍其他辅助分析窗口功能的应用场景。
     • 二进制窗口(Hex View-1)可支持用户查看可执行文件对应相对偏移的二进制机器码数据。如下图所示:

在这里插入图片描述
     • 二进制窗口总共为三部分,三部分内容分别位于下图左、中、右,三种含义分别为:
     • 左边数据:表示二进制数据对应的内存相对偏移
     • 中间数据:表示内存中数据的具体内容
     • 右边数据:表示内存数据的字符串显示,该功能可辅助读者快速识别字符串内容
     • 用户可在二进制查看窗口编辑二进制数据,从而满足篡改数据的测试需求
在这里插入图片描述
• 函数窗口
     • IDA提供函数窗口供用户查找函数信息,该窗口界面如图:
在这里插入图片描述
     • 在窗口按下”CTRL + F”快捷键便可根据需求搜索函数名,快速定位函数名方式可提高逆向分析效率

• 结构窗口(Structures)
     • 结构窗口提供用户查询已定义的结构体,同时IDA可识别出可执行文件包含的部分结构体数据,结构窗口如下所示:
在这里插入图片描述
     • 结构窗口可通过快捷键”+”、”-“展开和收缩结构体,IDA结构窗口支持用户自定义结构体

• 导入函数窗口(Imports)
     • IDA提供导入函数窗口,用于可在导入函数窗口中查看当前可执行文件导入哪些外部函数库及函数,导入函数窗口如下图所示:
在这里插入图片描述
• 导出函数窗口(Exports)
     • IDA的导出函数窗口提供可执行文件导出函数信息,对应的带出函数窗口如下图所示:
在这里插入图片描述

0x07 常用快捷键

按键 用处
F5 将汇编转换成伪代码
Shift + F12 查看字符串
X 查看交叉引用
Y 修改变量类型
H,R,A 转换数据类型
C 转换为代码
D 转换为数据
支持一下
扫一扫,支持forsigner
  • 微信扫一扫
  • 支付宝扫一扫