IDA的简单使用

IDA Pro

交互式反汇编器专业版(Interactive Disassembler Professional),人们常称其为IDA Pro,或简称为IDA。是最棒的一个静态反编译软件(当然动态也可以),为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器!交叉Windows或Linux WinCE MacOS平台主机来分析程序。IDA Pro已经成为事实上的分析敌意代码的标准并让其自身迅速成为攻击研究领域的重要工具。它支持数十种CPU指令集其中包括Intel x86,x64,MIPS,PowerPC,ARM,Z80,68000,c8051等等。
本文对此仅做简单介绍,并且将持续更新(小博主学到哪就会更新到哪),相当于学习笔记的存在,不自量力,拿出与大家分享一下(除众多大佬处引用外还掺杂个人理解故内容不是100%正确):


当打开一个文件时,会出现:在这里插入图片描述


列表中显示适合处理选定文件的IDA加载器,Binary file(二进制文件)最低级的加载文件方式。一般默认第一个为最佳选项。

在这里插入图片描述

彩色水平带是IDA概括导航栏,被加载文件地址空间线性视图。


反汇编视图有两种,图形模式和列表模式(快捷键空格切换)


在这里插入图片描述

输出窗口显示IDA输出信息


函数窗口

在这里插入图片描述

可能有时你只写了个Hello World!却出现一大堆函数,这是因为你在开头引入的库函数#include<stdio.h>等等,可能在实际运行中根本没有调用但是在编译中链接上了,所以就算没有调用也会出现。
向右滑

在这里插入图片描述

列举IDA在数据库识别的每一个函数


IDA图形视图

红色:分支语句为假的执行分支。

绿色:分支语句为真时执行分支。

在这里插入图片描述

IDA文本视图

窗口左边部分叫做箭头窗口,用于描述函数中的非线性流程。实线箭头表示非条件跳转,虚线箭头表示条件跳转。如果一个跳转将控制权交给程序中的某个地址,这时会使用粗线(实线或虚线)。出现逆向流程,通常表示程序中存在循环

在这里插入图片描述


十六进制窗口

在这里插入图片描述

第一个16进制窗口会与第一个反汇编窗口同步。如果一个反汇编窗口与一个十六进制窗口同步,在一个窗口滚动鼠标,另一个窗口也会滚动到相应位置(同一个虚拟地址)。如果在反汇编窗口选中一个项目,十六进制窗口中的对应字节也将突出显示。


导出窗口

在这里插入图片描述

导出窗口列出文件的入口


image

与函数窗口相似,列出被分析的二进制文件导入的所有函数


结构体窗口

在这里插入图片描述

显示IDA在二进制文件中使用的任何复杂的数据结构的布局


枚举窗口

在这里插入图片描述

显示枚举类型

以上窗口一开始自动打开

手动打开

在这里插入图片描述

双击相应类型自动跳转至汇编相应处


String窗口

从二进制文件中提取字符串以及所在地址(扫描风格可改)


names窗口

列举所有全局名称

  • F,常规函数。IDA认为这些函数不属于库函数

  • L,库函数。IDA通过签名匹配算法来识别库函数

  • I,导入的名称,通常为共享库导入的函数名称

  • C,命名代码。

  • D,数据

  • A,字符串数据


段窗口

段名称,起始与结束地点,许可标志。在这里插入图片描述



IDA导航

使用jump —>jump to address命令或在处于活动状态的反汇编窗口按下热键G,均可打开Jump toAddress对话框

历史记录

前进和后退导航功能(基于你浏览反汇编窗口的顺序)。每次你导航到反汇编窗口中的一个新位置,你当前的位置就会添加到位置列表中。有两种方式菜单操作可用于遍历这个列表。首先,Jump —>Jump to previous Position

ESC(只能在反汇编使用,其他窗口为关闭当前窗口)



搜索数据库

文本搜索

IDA文本搜索相当于对反汇编列表窗口进行子字符串搜索。通过Search—>Text命令启动文本搜索或者Alt+T。搜搜限制于仅查找完整的词,并且能够匹配反汇编行中的任何完整的词,包括操作码助记符或常量。最后使用Ctrl+T或者Search—>Next Text命令可重复前一项搜索,以找到下一个匹配。

二进制搜索

.......


IDA显示中文字符串另一个老师傅写的,引用一下


注:图片来源于网络,若侵权删除。(懒得自己传图片)

To be continue=>

posted @ 2021-12-03 19:36  奇迹和魔法都是存在的  阅读(2833)  评论(2编辑  收藏  举报