上一篇文章:《从0到1CTFer成长之路》逆向工程个人笔记--逆向工程基础
IDA 使用入门
加载文件
打开 IDA,点击 GO,即可把程序拖拽到 IDA 中
IDA 分为 32bit 和 64bit 两种架构,选择哪种结构,可以在把程序拖拽到 IDA 后,根据 Load a new file 界面决定是否更换另一种架构
界面介绍
- 1:导航栏(程序不同类型的数据:普通函数,未定义函数的代码,数据,未定义)
- 2:反汇编主窗口
- 3:函数窗口(函数名称+地址)
- 4:输出窗口(下方输入框可以输入命令)
- 5:状态指示器(AU:idle 代表 IDA 完成了对程序的自动化分析)
数据类型
在反汇编窗口,右键菜单或按空格键可以在控制流图和文本界面之间切换
IDA 会将代码段多数数据正确标注为代码类型,并反汇编,特殊段部分位置标注为 8 字节整型 qword,用户可自行纠正
被标注为代码的位置:地址黑色显示
被标注为数据的位置:地址灰色显示
未定义数据类型的位置:显示黄色
定义数据类型的快捷键
- U 键:取消一个地方已有的数据类型定义
- D 键:让某一个位置变成数据,一直按,会改变字节大小(1/2/4/8)
- C 键:让某一个位置变成指令,定义为指令后,IDA 会自动以此为起始位置进行递归下降反汇编
- A 键:以该位置为起点定义一个以“\0”结尾的字符串类型
- *键:将此处定义为一个数组,可设置数组属性
- O 键:将此处定义为一个地址偏移
函数操作
反汇编不是完全连续的,而是由分散的各函数拼凑而成的。
每个函数都有局部变量、调用约定等信息,控制流图也只能以函数为单位生成和显示,所以需要正确定义函数
- 删除函数:在函数窗口中选中函数后,按 Delete
- 定义函数:在反汇编窗口中选中对应行后&#