环境准备
-
Python 安装,推荐版本 3.12.10
这里推荐使用pyenv-win管理版本,建议卸载原有python,重新使用pyenv来管理。 -
root设备或模拟器(雷电模拟器)
这里使用的小米8。
Miflash 刷机工具
Mi 8 线刷包
安装Magisk -
下载frida server,推荐16.1.11版本
adb shell getprop ro.product.cpu.abi 查询自己设备cpu架构,下载对应frida-server。一般手机为arm64,模拟器为x86_64。

-
VsCode用于编写脚本,也可以使用PyCharm等工具
安装Frida
1、pc安装frida
pip install frida
pip install frida-tools
2、安装Objection (可选)
Objection是基于Frida开发的一个命令行工具,旨在简化Frida的使用,Objection内置了许多常用的Frida脚本可以方便地进行内存搜索、类和模块搜索、方法hook等功能。由于版本目前一直没有更新,需使用旧版本frida。这里尝试了许久才找到可用版本环境
frida 16.1.11
frida-tools 12.1.1
python 3.12.10
安装指定版本frida
pip install frida==16.1.11
pip install frida-tools==12.1.1
pip3 install objection
3、验证安装是否成功
frida --version

4、在手机或模拟器运行frida-server
使用adb命令将下载好的frida-server放到手机指定的目录,并使用root权限运行:
adb push frida-server-16.1.11-android-arm64 /data/local/tmp/
adb shell //进入设备命令行模式
su //赋予root权限
chmod 777 /data/local/tmp/frida-server-16.1.11-android-arm64 //赋予文件操作权限
./frida-server-16.1.11-android-arm64 //运行
如果没有报错,说明运行成功,重新打开一个cmd窗口用于调试。
运行Hook脚本
1、查看手机运行进程
(1)frida-ps -Ua # 查看运行应用信息
(2)frida-ps -U # 查看手机进程

2、编写hook脚本(VsCode)
setTimeout(function () {
console.warn('[*]start');
Java.perform(function () {
setTimeout(function () {
console.warn('[*]start');
Java.perform(function () {
console.warn('[*]开始枚举目标应用的所有类:');
Java.enumerateLoadedClasses({
onMatch: function (str) {
if (str.split(".")[1] == 'example') {
console.log("[*]" + str);
}
},
onComplete: function () {
console.warn('[*]枚举目标应用的所有类结束!:');
},
});
function enumMethods(className) {
console.warn('[*]开始枚举所有函数:');
let hook = Java.use(className);
console.warn(`[*]开始枚举类 ${className} 的所有方法:`);
let methods = hook.class.getDeclaredMethods();
hook.$dispose;
return methods;
}
var a = enumMethods('com.example.activity.base.MainActivity);
a.forEach(element => {
console.log(element.toString());
});
});
console.warn(`[*]枚举类} 的所有方法结束!`);
});
}, 3000);
此脚本用于抓取目标应用的所有类和抓取指定目标类的方法。
3、运行脚本
frida -U <进程名> -l <脚本名>
例子:frida -U com.example -l hoke.js
4、使用r0tracer脚本
项目地址:r0ysue/r0tracer: 安卓Java层多功能追踪脚本
(1)下载相关脚本,放开 hookALL() 方法
(2)在脚本目录下,运行命令frida -U -f com.example.cn -l .\r0tracer.js -o log.txt
抓取com.example.cn应用的所有业务类,并保存至本地log文件。
1067

被折叠的 条评论
为什么被折叠?



