一、IDA简介

*一、IDA简介*

IDA Pro全称是International disassemble professional,交互式反编译专业版,简称IDA。采用递归向下反编译器,目的是尽可能呈现接近原代码的代码。它是Hex-Rays公司出品的一款交互式反汇编工具,是目前最棒的一个静态反编译软件,为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器。它支持数十种CPU指令集其中包括Intel x86、x64、MIPS、PowerPC、ARM、Z80、68000、c8051等等,目前IDA的最新版本为7.5版本。

Hex-rays官网:https://www.hex-rays.com/

在这里插入图片描述

图Hex-Rays官网

官网给出的正版报价还是十分昂贵的。

在这里插入图片描述

图 IDA官方售价

二、IDA的安装

1.1 Window系统

  1. 首先下载IDA Pro,这里选择IDA_Pro_v7.0_Portable版本,免安装可以之间使用,下载地址:

链接: https://pan.baidu.com/s/1p9elz1a34872LsY1WLJmlA

提取码: is2u

  1. 下载完成后解压,注意,IDA的安装路径中不要出现汉字,会导致运行错误。解压完成后在IDA的安装根目录下有许多文件夹,各个文件夹存储不同的内容

cfg:包含各种配置文件,基本IDA配置文件ida.cfg,GUI配置文件idagui.cfg,文本模式用户界面配置文件idatui.cfg,
idc:包含IDA内置脚本语言IDC所需要的核心文件
ids:包含一些符号文件
loaders:包含用于识别和解析PE或者ELF
plugins:附加的插件模块
procs:包含处理器模块。

其中有两个启动程序,分别对应的是32位和64位。

在这里插入图片描述

图 IDA文件启动程序

\3. 双击打开启动程序即可直接使用。

在这里插入图片描述

图 IDA启动界面

1.2 *Linux系统*

\1. Linux中wine命令是够在多种 POSIX-compliant 操作系统(诸如 Linux,Mac OSX 及 BSD 等)上运行 Windows 应用的兼容层,所以我们想在linux上运行window版的IDA,直接使用wine命令即可,本篇文章采用的linux系统为Ubuntu16.04。

\2. 在Ubuntu上安装wine,本执行命令:

Sudo apt-get install wine

安装成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IzejpHt2-1616128222039)(file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml18904\wps5.jpg)]

\3. 将IDA菜单IDA_Pro_v7.0_Portable复制到linux系统

在这里插入图片描述

\4. 执行wine ida.exe/ida64.exe命令即可运行IDA。

在这里插入图片描述

*三、IDA Pro使用*

*3.1 新建项目*

双击打开exe文件弹出如下图所示的“About”界面,该界面介绍了IDA的当前版本等相关信息,点击OK按钮。

在这里插入图片描述

接着弹出Support message界面,可以勾选Don’t show this message again.

在这里插入图片描述

IDA包括三种加载文件的方式,其中“New”是新建打开一个标准文件的对话框,“GO”是运行打开一个空白工作,用户将要分析的文件拖入分析,“Previous”是选择最近一次使用过的文件,这里选择“New”打开一个新的项目。

在这里插入图片描述

系统会打开资源管理器,这里首先通过C语言写了一段代码,并在本地生成一个“hello.exe”文件,它就是接下来分析的可执行文件。通过VC++6.0编制,源代码如下

#include<stdio.h>

int main()

{

​ printf(“Hello World!\n”);

​ return 0;

}

选择要导入的文件。

在这里插入图片描述

装载PE文件

在“Load a new file”窗口中选择装载PE文件,选择默认选项,点击“ok”。包括text(代码块)、data(数据块)、rsrc(资源块)、idata(输入表)和edata(输出表)等,也可以载入二进制文件。

在这里插入图片描述

IDA反汇编包括两个阶段,首先将程序的代码和数据分开,分别标记函数并分析参数调用、跳转、指令关系等;接着如果IDA能识别文件的编译类型,就装载对应的编译器特征文件,给各函数赋名。同时,IDA会创建一个数据库,其组件分别保存在“.id0”、“.id1”、“.nam”和“.til”的文件里。

id0:二叉树形式的数据库

id1:程序字节标识

nam:Named窗口的索引信息

til:给定数据库的本地类型定义的相关信息

在这里插入图片描述

接着弹出确认窗口,可以选择“Don’t show this message again”选项。

在这里插入图片描述

接着IDA会显示运行结果,此时就正式进去了IDA的分析界面,我们就可以开始详细分析了。

*3.2 关闭项目*

关闭IDA Pro并保存数据库文件

保存IDB数据库文件至本地,它记录了用IDA Pro对该程序分析中的工作状态,包括反汇编分析、区段扫描、用户自定义结构、用户自定义名称、注释等信息。点击右上角的关闭按钮,弹出IDA Pro保存数据库窗口(Save Database),使用默认选项,直接点击OK即可以保存生成数据库(.idb)文件。

在这里插入图片描述

下次载入时,可以直接加载数据库文件,获取之前分析的状态。

*四、********IDA Pro********工具界面介绍*

这里将IDA的界面分成如图几个部分进行介绍

在这里插入图片描述

*4.1菜单栏*

第一部分是IDA的菜单栏,IDA包括9个主菜单烂,分别是、、、、、、、、,其中菜单栏是对文件新建、打开、保存、加载、关闭操作等;菜单栏是对加载内容的选取、复制、导出等操作;

主要实验各个函数、地址之间的跳转等;

主要实现查找功能;

是对各个窗口视图的打开关闭操作;

栏选择调试器进行调试;

栏是对IDA的各项设置,如界面的颜色、字体的大小等;

工具栏打开或切换各种窗口;

其他功能。

*4.2工具栏*

工具栏通常位于IDA菜单栏下面的主工具栏区域,工具栏包含与IDA的常用操作对应的工具,比如打开文件、保存文件、搜索、调试各种操作等。根据你的个人需要,你可以分离、拖动和重新定位每个工具栏,将其放置到屏幕的任何位置,如果不需要工具栏可以使用View->Toolbars或右击工具栏右边的空白区域来打开或关闭工具栏。

在这里插入图片描述

图 工具栏

*4.3 导航带*

彩色的水平带是IDA的概况导航栏,也叫做导航带。导航带是被加载文件地址空间的线性试图。默认情况下,它会显示二进制空间的整个地址范围。地址空间被分成6个颜色,表示不同的代码块,如图中所示:浅蓝色表示库函数、深蓝色表示常规函数、棕色表示指令、灰色表示数据、绿色、黄色表示未知情况、粉色表示不确定的外部符号。

在这里插入图片描述

图 导航带

*4.4函数窗口*

函数窗口用于列举IDA Pro在数据库中识别的每一个函数,包括函数名、函数的起始地址和长度、函数所属段、参数等信息,双击函数可以跳转到指定函数位置查看详细信息。

在这里插入图片描述

图 函数窗口

*4.5 反汇编窗口*

反汇编窗口也叫IDA-View窗口,它是操作和分析二进制的主要工具,反汇编窗口有两种显示格式:文本试图和图形视图(IDA5.0引入),默认情况下反汇编窗口以图形视图显示,可以使用空格键在图像视图与列表视图之间切换。

文本视图
图形视图

*4.6 十六进制窗口*

在Hex View-1中可以查看16进制代码,方便定位代码后使用其他工具修改,默认为只读状态,可以用快捷键F2对数据区域(绿色字符区域)在只读和编辑两种状态切换,具体表示如下图所示

在这里插入图片描述

*4.7 字符串窗口*

String window默认情况下该窗口不会显示,可以选择 -> -> 或使用快捷键”shift+F12”打开该窗口。Strings显示程序中所有字符串,该窗口有助于你通过程序的运行输出逆向找出对应的代码片断,如下图的字符串及对应的Address。
在这里插入图片描述

*4.8 其他窗口*

\1. 输出窗口,用于显示输出结果

\2. Python命令行,可以直接输入python命令,并在输出窗口输出结果。

\3. Strctures(结构体窗口):用于显示IDA Pro决定在被分析的二进制文件中使用的任何复杂的数据结构。

在这里插入图片描述

\4. Enums枚举窗口:enums可列举,定义枚举类型。

[外链图片转存中…(img-vQe0Hozu-1616128222057)]

*4.8 其他窗口*

\1. 输出窗口,用于显示输出结果

\2. Python命令行,可以直接输入python命令,并在输出窗口输出结果。

\3. Strctures(结构体窗口):用于显示IDA Pro决定在被分析的二进制文件中使用的任何复杂的数据结构。

[外链图片转存中…(img-zDUrkolY-1616128222058)]

\4. Enums枚举窗口:enums可列举,定义枚举类型。

\5. Import/Exports窗口:导出窗口列出文件的入口点,导入窗口列出由被分析的二进制文件导入的所有函数及其使用了哪些模块。

  • 13
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值