0


IDA详细使用教程,适合逆向新手的实验报告

IDA详细使用教程,原创适合逆向新手的实验报告,关于快捷键,界面展示等的介绍,推荐大家结合另一篇ida实操,文章食用。切实感受ida的魅力与强大。

一、软件介绍

IDA全称是交互式反汇编器专业版(Interactive Disassembler Professional),人们其简称为IDA,IDA pro 是业界最成熟、先进的反汇编工具之一,是目前最棒的一个静态反编译软件,为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器!IDA Pro是一款交互式的,可编程的,可扩展的,多处理器的,交叉Windows或Linux WinCE MacOS平台主机来分析程序, 被公认为最好的花钱可以买到的逆向工程利器。IDA Pro已经成为事实上的分析敌意代码的标准并让其自身迅速成为攻击研究领域的重要工具。它支持数十种CPU指令集其中包括Intel x86,x64,MIPS,PowerPC,ARM,Z80,68000,c8051等等。

IDA Pro 的主要优点是它允许以交互方式更改显示数据的任何元素:

给函数、变量、数据结构等命名。

更改数据表示(如数字、各种编码的字符串、数据结构)

搭建图表和代码流程图,简化对反汇编代码的理解

使用c++中有关函数参数和结构定义的类型信息,以便自动命名参数和变量

自动识别和命名汇编代码中的标准库函数

所谓工欲善其事必先利其器。所以必定需要先熟悉逆向中最常用的工具。而IDA pro则是被公认为最好的花钱可以买到的逆向工程利器。当然现在对我来说是肯定买不起的,所以我用的是破解版,先熟悉一下ida的基本操作。

二、软件运行

在ida安装完成后,在桌面上会有两 个图标。其中idaq.exe负责反编译32位可执行文件,idap64.exe负责反编译64位可执行文件。点击运行idaq之后用户便可选择加载可执行文件的方式。

直接运行ida,会展示这个界面。“New”选项表明反编译新可执行文件,“Go”选项表明直接进入主界面,“Previous”选项表明加载已反编译的文件选项。其中previous会给出给出之前逆向过的文件,如图就是我之前一段时间分析过的一些文件。

直接进入就是IDA主要功能界面,IDA支持直接将文件拖入界面所在的区域中。

例如我打开的是我们期末上机考试系统的客户端。ida可识别当前玩家加载的可执行文件类型,已识别出文件为PE可执行文件格式。下面“Processor type”选项表明当前处理器类型,IDA能够识别的文件类型可依照IDA默认选项加载可执行文件,如果IDA不能识别的二进制代码,例如ShellCode代码,可选择“Binary file”方式加载,选择“Binary file”方式加载。

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

Processor Type:可以指定在反汇编过程中使用的处理器模块。多数情况,IDA将从可执行文件的头中读取到信息,选择合适的处理器。

kernel options:配置特定反汇编分析选项,IDA可利用这些选项该进递归下降过程。通常ida默认的都是最优的。

processor options:选择适用于处理器模块的配置选项。


三、界面简介

进行逆向分析之前需了解IDA界面有哪些功能,包括:导航条、反汇编窗口、其他辅助分析窗口。这是我自己简单制作的一张图,虽然不够全面,但希望能帮助理解。

1)导航条IDA

主界面中存在一项颜色各异的导航条。通过导航条可了解分析可执行文件各部分数据分布情况,各种颜色代表含义如下:

蓝色:表示常规的指令函数,绝大部分为用户编写的代码,上图中绝大部分数据属于蓝色数据。

黑色:表示间隙部分内容,可执行文件中包含多个节段,相邻节段之间存在空隙,红色表示空隙部分。

银白色:表示数据项部分内容,可执行文件中会包含大量数据,银白色表示数据项部分内容。

粉色:表示外部导入符号,通常可执行文件会导入外部的库函数。

暗黄色:表示IDA未识别的内容,需要用户根据需求自行分析。

以上基于IDA默认设置介绍各种颜色在导航条的含义,IDA同时提供了颜色设置,方便用户根据需求选择合适的颜色,对应“Options”菜单的“Colors”选项中,对应选项如下图所示:

可在“IDA Colors”对话框的选择“Navigation band”Table项,在对应选项中设置各项数据的颜色,方便实际场景的分析。

2)反汇编窗口

反汇编窗口属于逆向分析过程中关注频率最高的窗口,通过此窗口可以逆向分析反汇编代码,移动端中分析频率最高的属于Arm指令集,包括:Arm 32为指令集(常用语Android平台Native层反汇编代码分析)、Thumb 16位指令集(常用于IOS平台32位Mach-O文件的反汇编代码分析)、Arm 64位指令集(常用于IOS平台64位Mach-O文件的反汇编代码分析)。反汇编窗口属于“IDA View-A”标签项内容。反汇编窗口可分为两种模式,分别为:默认模式和图形模式。

3)其他辅助分析窗口

除了提供反汇编分析窗口,IDA默认界面提供二进制查看编辑窗口、函数窗口、结构窗口、枚举类型窗口、导入函数窗口、导出函数窗口。不同窗口在分析阶段起到不同作用。下面介绍其他辅助分析窗口功能的应用场景。

二进制窗口可支持用户查看可执行文件对应相对偏移的二进制机器码数据,二进制查看窗口对应“Hex View-1”选项内容。

二进制查看窗口总共分为三部分,三部分内容分别位于上图左、中、右,三处含义分别为:

左边数据:表示二进制数据对应的内存相对偏移。

中间数据:表示内存中数据的具体内容。

右边数据:表示内存数据的字符串显示,该功能可辅助读者快速识别字符串内容。

用户可在二进制查看窗口中编辑二进制数据,从而满足篡改数据的测试需求。

函数窗口

IDA提供函数窗口供玩家查找函数信息,在窗口按下“CTRL + F”快捷键便可根据需求搜索函数名,快速定位函数名方式可提供逆向分析效率。

结构窗口(Structures)

结构窗口提供用户查询已定义的结构体,同时IDA可识别出可执行文件包含的部分结构体数据,结构窗口可通过快捷键“+”、“-”展开和收缩结构体,IDA结构窗口支持用户自定义结构体。

导入函数窗口(Imports)

IDA提供导入函数窗口,用于可在导入函数窗口中查看当前可执行文件导入哪些外部函数库及函数,通过导入函数窗口可获取到函数内存相对偏移地址、函数名、导入函数所属的库文件。

导出函数窗口(Exports)

IDA的导出函数窗口提供可执行文件导出函数信息,通过导出函数窗口可获取到导出的函数名、函数对应的内存相对偏移地址。


IDA分析可执行文件

IDA会对可识别的文件进行代码反编译,反编译过程依据文件大小而定。IDA软件会利用回归方式递进分析可执行文件反汇编代码。判断IDA分析完毕的三种方法分别为:

1)图中IDA的“Output Window”窗口输出“The initial autoanalysis has been finished”日志时,则说明IDA已分析完毕。

2)如图所示进度条处黄色向上箭头消失时,则表明IDA分析完毕。

3)图中IDA界面左下角AU处于”idle”状态时,也表明IDA分析完毕。

四、常用快捷键

空格键:反汇编窗口切换文本跟图形

Esc:在反汇编窗口中使用为后退到上个操作的地址处

Shift +F5:打开签名窗口

shift+F12:自动分析出参考字符串

ALT+T:搜索字符串(文本搜索)

ALT+L:标记(Lable)

ALT+M:设置标签(mark)

ALT+G:转换局部变量为结构体

ALT+Enter:跳转到新的窗口

Alt+B:快捷键用于搜索十六进制字节序列,通常在分析过程中可以用来搜索opcode

CTRL+M:列举出当前已经添加的标签

CTRL+S列举出二进制程序的段的开始地址、结束地址、权限等信息

F9:动态调试程序(其实IDA主要用作静态分析用的)

F5:将一个函数逆向出来(生成c伪代码)

G:跳转到指定地址

A:将选择的信息转换成ASCII(转换成可读性跟强的字符串)

X(ctrl+X):交叉引用,类似于OD中的栈回溯操作

N:对符号重命名

:&;(冒号&分号):光标所在位置添加常规注释和可重复注释

P:创建函数

T:解析结构体偏移

M:转换为枚举类型常量

Y:设置变量类型

H:转换16进制

C:光标所在地址处的内容解析成代码

D:光标所在地址处的内容解析成数据

A:光标所在地址处的内容解析成ascll码字符串

U:光标所在地址处的内容解析成未定义内容。


本文转载自: https://blog.csdn.net/mackilo/article/details/127747292
版权归原作者 mackilo 所有, 如有侵权,请联系我们删除。

“IDA详细使用教程,适合逆向新手的实验报告”的评论:

还没有评论