环境需要
- Hook 框架 Frida
- 手机、模拟器均需要提前获取Root权限
- ADB工具
需要打开安卓开发者模式,勾选上USB调试
以下是连接的手机设备
ADB连接
adb kill-server adb start-server
ADB查看设备数
adb devices
得到的结果
List of devices attached
436b350f device
其中436b350f就是设备名称
ADB查看设备的CPU架构
adb -s 436b350f shell getprop ro.product.cpu.abi
结果:arm64-v8a
说明手机设备是ARM64
下载Frida
电脑
Conda或者虚拟环境都可以
Python 3.8+
pip安装(如果pip安装慢就带上-i参数,使用百度镜像下载)
pip install frida==14.2.18 -i https://mirror.baidu.com/pypi/simple pip install frida-tools==9.2.5 -i https://mirror.baidu.com/pypi/simple
安卓手机(ARM 64)
下载安装包:https://github.com/frida/frida/releases
包名 frida-server-14.2.18-android-arm64.xz
以arm64结尾
模拟器(X86_64)
下载安装包:https://github.com/frida/frida/releases
包名frida-server-14.2.18-android-x86_64.xz
以x86_64结尾
电脑上安装的frida和手机安装的frida-server必须要版本一致,比如都是14.2.18
安装到手机
将文件解压,解压后的文件放入到手机的 /data/local/tmp 目录
使用ADB,把frida-server上传到手机的sdcard目录
adb push D:\frida-server-14.2.18-android-arm64\frida-server-14.2.18-android-arm64 /sdcard/
ADB连接到手机
adb -s 436b350f shell
如果只有一个手机设备则可以省略-s参数
直接使用
adb shell
使用root权限
su -
这时候手机上会提醒获取root权限,在手机上点允许即可。
进入到手机的命令行
cd /sdcard
ls
就能看到上传的frida-server
将frida-server复制到/data/local/tmp
cp /sdcard/frida-server-14.2.18-android-arm64 /data/local/tmp
进入到/data/local/tmp
cd /data/local/tmp
赋予frida-server权限
chmod +x frida-server-14.2.18-android-arm64
或者直接777权限
chmod 777 frida-server-14.2.18-android-arm64
关闭selinux
setenforce 0
启动frida
ADB操作手机设备
adb shell su - cd /data/local/tmp ./frida-server-14.2.18-android-arm64
PC的CMD操作,或者PowerShell
端口转发
adb forward tcp:27042 tcp:27042 adb forward tcp:27043 tcp:27043
查看手机运行的APP列表
在Python虚拟环境中执行
frida-ps -Uai
后续就可以使用Python使用frida进行hook