最近为了看android so使用了IDA。
先下载安装了IDA7(之前使用IDA6.6不能动态调试,而且在6.6上要看伪代码必须用32位版本)。
IDA静态功能最强大的地方就是F5看伪代码。下面的快捷键也很有用:
- /: 加注释
- n: 改名字,函数名,变量名
- ctrl+w: 保存,修改了东西记得要保存啊
常用窗口:
- 汇编窗口
- 伪代码窗口
- hex dump窗口
- export 输出函数列表
- structure 窗口:导入结构很重要,对jni来说,导入JniEnv会直接匹配出来很多函数,方便读代码
使用脚本来完成入口函数的签名导入,如果有so文件的接口声明,那么使用下面的方法能确定native代码中这些接口的定义和显示方式:
1.按照下面连接中所说先运行命令 python ./make_sig.py src method_sig.txt 生成签名文件method_sig.txt
参考:https://zhuanlan.zhihu.com/p/29786049
好像还使用了ultraedit 正则替换:^(*^)java_com_ ==》JNIEXPORT ^1 JNICALL java_com_
2.在IDA中引入jni.h,导入相关结构。
a> file->