什么是IDA
IDA是一款交互式的,可编程的,可扩展的,多处理器的,交叉Windows或Linux WinCE MacOS平台主机的反汇编工具。可以用来在Android逆向分析过程中分析So文件。
安装
链接:https://pan.baidu.com/s/1tfrOBgaivvog1FFC5myZGA
提取码:exmd
安装完成后打开,点击New,选择需要分析的so文件(或者将so文件拖动到IDA窗口上)打开,如下图。
导航条:
蓝色:常规指令函数
黑色:节与节之间的间隙
银白色:数据内容
粉色:外部导入的符号
暗黄色:IDA未能识别的内容
主面板:
IDA-View:三种反汇编视图,文本视图,图标视图,路径视图。
HEX-View:十六进制窗口
Imports:导入表
Exports:导出函数表
Enums:枚举窗口
Structures:结构体窗口
常用快捷键:
空格键:切换文本视图和图表视图
ESC:返回上一个操作地址
G:搜索地址和符号
N:对符号进行重命名
冒号键:常规注释
分号键:可重复注释
Alt+M:添加标签
Ctrl+M:查看标签
Ctrl+S:查看节的信息
X:查看交叉应用
F5:查看伪代码
Alt+T:搜索文本
Alt+B:搜索十六进制
代码数据切换:C-->代码/D-->数据/A-->ascii字符串/U-->解析成未定义的内容
拷贝伪C代码到反汇编窗口:右键>copy to -assembly
IDA可以修改so的hex操作数来修改so文件,右键点击 “edit”进行修改,然后右键点击 “edit-patchrogram”提交。
静态分析
1.分析函数。
2.阅读ARM指令。
3.查看跳转逻辑
4.查看伪代码窗口
5.查看伪代码相应逻辑
6.复制伪代码到汇编窗口结合查看。
7.梳理整个逻辑