IDA静态分析so文件(一)
本文是记录自己学习IDA的一些总结与归纳,并将其体现成具体功能,便于复习与交流,有不对之处望大家包容并指出,欢迎大家留言收藏
本篇是IDA静态分析的第一篇, 本文讲解非常简单的静态分析so包 , 以便于熟悉IDA
环境
- IDA pro 7.0
- so包是32位
- 附加GitHub地址下载apk
- 如果出现其他问题可以参考IDA常见问题
开始
-
通过分析apk, 我们知道, java层调用了那些本地函数 , 实际运用也是如果 , 我们需要先分析java层代码 , 本文我们就是找到本地函数怎么对比字符串
-
将apk包提取成文件夹形式
-
打开IDA 到一下界面 ,我们选择new
- new 打开一个新的文件
- go 打开之前打开过得历史数据
- Previous 最近用过的文件
-
找到我们项目中的so文件,双击打开,一路确定
-
这时候ida正式打开so文件 ,显示出各个模块,我们找到functions window , 顾名思义 , 是方法区 ,然后搜索我们刚刚需要找的函数名(快捷键 ctrl + f ) ,双击打开函数
- 这是这时候视图区就定位到当前函数
- 点击函数名, 按F5 (注意:需要插件,很多ida都是自动集成的) 有确定按确定 , 就会转成c函数
- 这时候,有一点c基础的都大概能看得到基本逻辑 ,就是拿v5 和 password做对比,但是很别扭,为什么参数都是int类型的 , 大家知道jni函数定义规则,由于ida并不能辨别参数类型,所以我们可以修改参数类型(点击参数类型按y)
- 最终成为如下图,是不是非常亲切
总结
本文讲述以下几点
- 静态查看so包
- 并找到指定函数
- 修改函数类型
感谢
欢迎大家点赞分享收藏
IDA学习专栏