IDA是 交互式反编译专业版,International disassemble professional,采用递归向下反编译器,目的是尽可能呈现接近原代码的代码;
IDA分为windows版本、OS版本、Linux版本;
IDA的目录结构:
1.1 IDA界面
打开IDA Pro 6.5,为进入IDA界面提供三种启动选项,分别是New(新建),Go(运行),Previous(上一个)。
1.2 加载界面
选择File菜单下的Open,打开想要逆向的可执行文件,会显示一个Load a new file的界面。这里可以选择:
1. 程序的类型; ----根据这个可以得到文件的可选类型,如果是C#会显示.Net
2. 处理器的类型;
3. 加载的段地址和偏移量;
4. 是否允许分析;
5. 一些加载选项;
6. 内核和处理器的一些选项;
7. windows系统dll所在的目录。
一般情况下,选择了程序类型后直接进行下一步; l'k
1.3 工作区+ 窗口
IDA View-A是反汇编窗口,定位要修改的代码段在哪里,使用空格切换图形试图和列表视图。
HexView-A是十六进制格式显示的窗口,用来修改我们的数据.
Imports是导入表(程序中调用到的外面的函数)
导出窗口export:使用别的dll 的函数;
Functions是函数表(这个程序中的函数),
Structures是结构体窗口,可以创建结构体;
Enums是枚举;
strings window: 字符串显示窗口,会列出程序中的所有字符串 shift +F12
Name窗口:
消息窗口:打印信息;
伪代码窗口;
1.4 IDA的数据保存--数据库
退出IDA时,会进行文件保存确认,如果需要继续进行分析,将IDA中间数据库打包,下次继续打开就可以进行分析;如果不需要继续分析,选择不要打包,不要存储数据库。
IDA打开应用程序时,会为其创建一个数据库,后缀为IDB。IDB由4个文件组成:
- 后缀为id0的二叉树形式的数据库,
- 后缀为id1的程序字节标识,
- 后缀为nam的Named窗口的索引信息,
- 后缀为til的给定数据库的本地类型定义的相关信息。
注意:IDA不提供撤销功能;所以请注意保存idb文件;