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进制窗口会与第一个反汇编窗口同步。如果一个反汇编窗口与一个十六进制窗口同步,在一个窗口滚动鼠标,另一个窗口也会滚动到相应位置(同一个虚拟地址)。如果在反汇编窗口选中一个项目,十六进制窗口中的对应字节也将突出显示。
导出窗口
导出窗口列出文件的入口
与函数窗口相似,列出被分析的二进制文件导入的所有函数
结构体窗口
显示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=>
你好啊,旅行者(〃'▽'〃)这篇有趣的文字是来自一个剑与魔法的世界(o゚▽゚)o :博客园
作者:{奇迹和魔法都是存在的},我的家是在这块呦:{https://www.cnblogs.com/connerlink/}
如果有空的话就来坐一坐吧
这块有日记,书籍推荐,茶水,还有一个孤单的小博主QAQ