IDA Pro 使用初探

实验环境

  • 操作机Windows xp
  • IDA Pro 6.8

实验目的

  • 体验初步的逆向工程。
  • 尝试使用IDA Pro,掌握不同的文件载入方法
  • 初步理解IDA Pro数据库文件的功能

实验步骤

步骤1:双击打开IDA pro32位程序加载器

本步骤演示首次打开IDA Pro过程

首先,我们演示第一次打开IDA Pro,这个过程会弹出一些额外的对话框,为了在以后的打开操作中节约时间和减少步骤,我们选择默认不显示这些对话框。

(1)双击打开桌面上IDA_Pro_v6.8文件夹,然后找到文件idaq.exe双击打开:

img

(2)在弹出的IDA关于信息框(About)点击OK按钮,在接下来弹出的支持信息框(Support Message)选中下次不显示本信息(Don't show this message again)并点击OK按钮,确保下次不显示本对话框。

img

(3)接下来会弹出IDA许可声明对话框(IDA License),点击我同意(I Agree)即可,之后不会再出现本对话框。

img

步骤2:使用新建方式载入目标程序

本步骤使用IDA Pro新建方式载入程序

其次,我们演示IDA Pro的加载文件功能,这里通过新建方式载入待分析目标文件。

(1)步骤1操作完成后,会弹出IDA载入框(Quick Start),显示IDA支持的三种加载文件方式,这里首先尝试使用新建方式(New):

img

载入方式功能介绍如下:

  • New(新建):选择新建功能,IDA将启动一个标准的文件打开对话框,根据用户选择,载入要分析的文件。
  • Go(运行):选择运行功能,IDA将直接打开一个空白工作区,用户可以直接将要分析的文件拖入工作去,或者使用File菜单中Open选项来打开文件。
  • Previous(上一个):选择上一个功能,IDA会打开其下“最近使用过的文件”列表中的一个文件。

如果不存在之前打开的文件,该按钮为灰色禁用。

(2)在文件选择对话框中依次点击 桌面 - 001文件夹 - x86.exe,载入目标程序:

img

(3)在弹出的加载对话框,可以看到IDA对当前程序的默认加载方式和选项,直接点击OK即可:

img

(4)接下来会弹出确认窗口,同样选中下次不显示本信息(Don't show this message again),并点击OK按钮:

img

(5)在接下来弹出的Hex-Rays信息框再点击OK后,会要求设置更新选项,这里直接点击OK,默认即可。

img

步骤3:关闭IDA Pro并保存数据库文件

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

IDB数据库文件中,记录了用IDA Pro对该程序分析中的工作状态,包括反汇编分析、区段扫描、用户自定义结构、用户自定义名称、注释等信息。

在下次的载入中,可以通过直接加载数据库文件,获取之前的工作和分析状态,避免工作状态的丢失。

然后,在载入操作完成后,我们演示关闭并保存IDA Pro数据库文件。

(1)点击右上角的关闭按钮,弹出IDA Pro保存数据库窗口(Save Database),使用默认选项,直接点击OK即可以保存生成数据库(.idb)文件。

img

数据库打包选项功能介绍如下:

  • Don’t pack database(不打包数据库):这个选项仅仅刷新对4个数据库组件文件所做的更改,并不会创建IDB文件,不建议使用本选项。
  • Pack datatase(Stone)【打包数据库(存储)】:默认选项,会将4个数据库组件文件存到一个IDB文件中,之前的任何IDB文件将会被立即覆盖。

创建IDB文件后,4个数据库组件文件将被删除。

该选项不使用压缩。

  • Pack database(Deflate)【打包数据库(压缩)】:和前一个选项类似,但是会压缩数据库文件。
  • Collect garbage(收集垃圾):如果勾选本选项,IDA会在关闭数据库之前,从数据库中删除没有用的内存页面。

在选择这个选项的同时,选择Deflate选项可创建尽可能小的IDB文件。

  • DONT’T SAVE the database(不保存数据库):如果勾选本选项,IDA将不会保存或覆盖之前生成的IDB文件。

(2)再次打开桌面上的001文件夹,可以看到已经生成了x86.idb文件:

img

步骤4:使用IDA Pro加载64位程序并关闭

本步骤拖动使用IDA Pro加载64位程序并关闭

在实际使用过程中,可能由于某些误操作,使得我们不想保存IDA Pro的工作状态。

这时,除了用快照方式还原外(第二课会介绍),还可以在关闭时选择不保存IDB数据库文件,这样本次载入时的所有工作操作都不会被记录。

接下来,我们尝试使用拖动加载的方式,来载入程序。

这次演示我们在关闭时,不保存IDB数据库文件。

(1)双击打开桌面上的001文件夹,拖动x64.exe到IDA Pro文件夹下的iqaq64.exe上,加载64位程序:

img

(2)同样使用默认选项,直接点击OK:

img

(3)在接下来的任意一个对话框点击No,选择不加载程序调试信息pdb文件:

img

(4)成功完成对64位程序的加载,点击右上角关闭按钮,这次勾选不保存数据库:

img

(5)可以看到001文件夹下面,没有生成x64.exe对应的IDB文件。

如果之前已有IDB数据库文件,将不会对之前的工作状态进行覆盖。

步骤5:使用IDA Pro加载IDB文件

本步骤使用IDA Pro打开IDB文件

在实际的IDA Pro操作过程中,如果逆向分析人员需要向其他人共享自己的工作状态,一般采用向对方拷贝IDB文件的方式,不需要再拷贝原始文件就可以继续分析。

最后,我们来演示仅仅通过载入IDB数据库文件,进行程序分析。

(1)将文件夹中的x86.idb文件拷贝到桌面上,然后拖动到idaq.exe打开:

img

(2)同样可以正常获取汇编信息,在FILE菜单栏,可以看到最近打开的文件记录:

img

实验结果分析与总结

IDA Pro可以通过多种方式,加载分析目标程序,生成的IDB文件保存分析程序信息。

思考

1、尝试使用idaq.exe打开64位程序,以及使用idaq64.exe打开32位程序,观察结果。

2、自行尝试使用Go方式打开待分析程序。

原文地址:https://www.cnblogs.com/ybqjymy/p/14207306.html