IDA 入门
安装IDA
安装仅作学习使用,参考: https://www.bilibili.com/video/BV1uA411V7LK
启动IDA
启动IDA后,出现欢迎界面,提供三种选项
- New 新建:会启动一个标准的File Open对话库那个来选择要分析的文件
- Go 运行:回打开一个空白的工作区。
- Previous 上一个:可以打开其下“最近使用过的文件”列表中的一个
IDA文件加载
启动IDA后,NEW或者空白工作区File-》Open一个新文件后,会有一个加载框。
IDA会生成一个可能的文件类型列表,并在对话框顶部显示这个列表
- 加载器列表。第一个是IDA自动识别出来的推荐选项。Binary file(二进制文件)是这个列表最后一个选项,会一直显示,因为他是IDA加载无法识别的文件的默认选项,提供了最低级的文件加载方法;
- Processor Type(处理器类型)多数情况下,IDA会自动识别。如果IDA无法确定,需要手动选择
- Loading Offset(加载偏移量)后续可更改Edit-》Segments-》Rebase Program
- Kernel option (核心选项) 绝大多数情况下,默认选项提供的都是最佳的反汇编选项。
- Processor Options(处理器选项)用来选择适用于选中的处理器模块的配置选项,但不一定对每个处理器模块有效。他只能为反汇编过程提供有效的帮助。
绝大数情况下,用户可以使用默认的
使用二进制文件加载器
由于没有文件头信息的引导分析过程,需要手动执行
-
可选16位模式代码还是32位模式代码
-
可以创建一个RAM块或者ROM块,或者同事创建这两块。Input file用来指定加载文件的哪一个部分
-
最后有一个提示,用户需要指定文件中的一个地址作为入口点,告诉IDA将这个地址的字节转换成代码(点那行,然后键盘按C)。对于二进制文件,IDA不会进行任何初始反汇编,除非你至少确定了一个代码字节。
IDA数据库文件
选择加载项后,进行分析,出现四个与文件名同名的的文件。IDA环境外难以编辑
- id0:二叉树形式的数据库
- id1:包含描述每个程序字节的标记
- nam:包含与IDA的Names窗口中显示的给定程序位置有关的索引信息
- til:存储一个更定数据库的本地类型定义有关的信息。
创建IDA数据库
选择加载器模块后,自动的。完成后可能有一下信息:
- 编译器识别
- 函数参数和局部变量识别
- 数据类型信息
关闭IDA数据库
- 不打包数据库。仅刷新4个数据库组件
- 打包数据库(存储)。会将四个组件文件存到一个IDB文件中,那四个问价被删除
- 打包数据库(压缩)。约等于2,唯一差别是4个组件文件被压缩到IDB归档文件中
- 收集垃圾。从数据库中删除任何没有用的内存页面。通常,中有在磁盘不足时才选这个
- 不保存数据库。放弃当前修改
重新打开数据库
IDA出现Bug意外关闭,可以关注一下
IDA桌面
- 工具栏
- 导航栏。呈现二进制文件的整个地址范围。不同颜色代表不同类型的文件内容。黄色小箭头表示当前位置
- 数据显示窗口。view-》open subviews可打开不小心关闭了的窗口
- 反汇编视图
- 反汇编图形试图的缩小版
- 输出窗口。约等于控制台输出设备
- 函数窗口。后续讨论
桌面技巧
- 回复无意中关闭的数据显示窗口:view-》open subviews
- 回复初始布局:Windows-》Reset Desktop
- 保存当前桌面布局:Windows-》Save Desktop
- 修改字体:选择你要修改字体的地方,右键,选Font