安卓模拟器Frida环境搭建 (frida+mumu)
发布网友
发布时间:2024-09-26 18:29
我来回答
共1个回答
热心网友
时间:2024-12-03 01:02
一、下载链接
1. mumu模拟器官网:
2. frida-server下载链接:
4. adb-tool下载链接:
二、安装frida-server进mumu模拟器
1. 下载frida-server并解压
2. 配置好adb的环境变量,并开启mumu浏览器且开启root模式
3. 上传frida-server并启动
注意:adb中如果不是root用户需要手动切换成root并启动
4. 新开一个命令行并转发
adb forward tcp:27043 tcp:27043
adb forward tcp:27042 tcp:27042
5. 在使用frida工具前,需要在python中安装frida
6. 最后使用frida-ps -U命令检查frida是否成功开启
开启frida-server时可能遇到链接失败的情况,把模拟器和adb重启后再走一遍流程即可
注意:frida与frida-server的版本需要一致,可用frida --version查看版本
三、frida基础使用
1. frida shell
命令:frida -U --no-pause -f 包名
进入后按Tab键可以查看frida支持的方法,此用法一般适用于查看基本信息
常用方法:
Process.getMoleByName("libc.so") 查看名字为libc.so的so库的详细信息
Mole.findBaseAddress("libc.so") 查看名字为libc.so的so库的基址
Mole.enumerateImportsSync("libc.so") 查看名字为libc.so的so库的导入函数表
Mole.enumerateExportsSync("libc.so") 查看名字为libc.so的so库的导出函数表
Mole.enumerateRangesSync("libc.so") 查看名字为libc.so的so库的可执行内存区
在shell里同样可以执行js脚本,不过我们一般不用shell来做这事。
2. frida js
命令:frida -U -l js脚本路径 包名
脚本demo:
关于frida js方法的介绍可以看这篇文章:
3. frida python
咕了
四、实战
这里用之前实战过的某有加密参数的app来做示范,这里要找key为authorization的加密逻辑。
1. 我这边用jadx定位实现逻辑的函数,静态分析加密逻辑
2. 当代码的逻辑过于混乱或无法准确分析出传入的参数时可以用frida来hook函数动态分析,这里我们hook authorization函数来观察传出的字符串。
js脚本:
根据前面的流程开启frida之后在模拟器上触发函数执行
重复上面的流程直到成功重现加密逻辑,可以调用api为止
五、Objection
objection是一个封装了frida的python库,允许我们用命令行而不是代码脚本来实现一些基本的hook功能,比如监控函数的入参出参,从而减少开发者的代码量。
1. 安装命令:pip install objection
2. 启动objection shell:objection -g 包名 explore
其他的objection指令可以用objection --help命令查看
3. shell常用命令: