IDA PRO的使用01
IDA 的打开方式
- ida64.exe
- ida32.exe
IDA 插件安装方式
- IDA 7.7
- Python 环境 3.8.x
- 必备插件
- LazyIDA: https://github.com/P4nda0s/LazyIDA
- KeyPatch: https://github.com/keystone-engine/keypatch (pip install keystone-engine)
- 将插件的 xxx.py 放到 IDA 目录的 plugins 目录
- 系统中有多个 python,使用 IDA 目录中的 idapyswitch.exe 切换
IDA 反汇编窗口
- 主要显示汇编代码、地址、控制流图
- 两种模式:文本模式(左图)、图形模式(右图)
- 空格键切换文本/图形模式
- 图形模式:Ctrl + 鼠标中键滚轮缩放
- 文本模式:指令地址、指令间线性关系、机器码
- 图形模式:方便观察控制流
IDA 伪代码窗口
- 反汇编 -> 伪代码: Tab 键 / F5
- 伪代码 -> 反汇编: Tab 键
- 提示:光标位置处 Tab 键切换有一定对应关系,可以快速定位伪代码某条语句的汇编。
IDA 字符串表 (shift + F12)
- Shift + F12 键 (背下来)
- 菜单打开 [View] -> [Open Subviews] -> [Strings]
- 字符串表收集了 IDA 识别到的所有字符串(不一定齐全)
- 字符串信息是逆向工作中非常关键的信息
- 字符串表按下 Ctrl + F 弹出底部筛选器,筛选包含关键字的字符串(所有表格窗格均可)
- 双击字符串会进去该字符串对应的数据内存区域
IDA 数据窗口
- 菜单 [View] -> [Open subviews] -> [Hex dump]
- 以 hexdump 形式展示程序的数据
- F2 键进入编辑模式,再次按下 F2 键退出编辑模式 (不推荐在数据窗口修改数据)
- G 键弹出地址跳转窗口 (亦可在反汇编/伪代码窗口使用)
- 如何复制数据?
IDA 交叉引用 (x键)
- 程序中的地址用符号来表示,例如 sub__xxx,var_xxx, …
- 符号可能被代码、数据引用,IDA 交叉引用窗口能展示引用关系
- void main() { printf(“%s”, abc); }, main 函数引用了 printf 、“%s”、abc
- IDA 可以通过 abc、printf、“%s” 交叉引用找到 main 函数
- 在符号名上按下 X 键,查找当前引用 X 的代码或数据
IDA 代码定位
- 字符串定位法
- 字符串定位法指的是通过已知字符串来定位代码。
- 在字符串表中找到该字符串
- 查找字符串的交叉引用
- 跳转到交叉引用指向的代码
IDA 地址跳转 (G键)
tips:010editor跳转crtl+G
IDA 标识符命名 (N键)
- 对已经分析的符号命名
- 单击选中符号,按下 N 键,输入有意义的名称
按键 | 功能 |
---|---|
空格 | 反汇编窗口切换图形/文本模式 |
Ctrl + 鼠标滚轮 | 调整反汇编图形模式大小 |
Tab / F5 | 伪代码 / 反汇编切换 |
Shift + F12 | 打开字符串表 |
Ctrl + F | 表格窗口搜索功能 |
F2 | Hex窗口进入/退出编辑模式,断点 |
G | 地址跳转窗口 |
X | 查看交叉引用 |
N | 重命名符号 |
IDA PRO的使用01
http://showfaker.top/2024/03/09/IDA-PRO-01/