安装
安装
pip
sudo easy_install pip
安装
frida
pip install frida-tools
安装的时候出现了 “ERROR: Cannot uninstall ‘six’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.”
自己手动安装一下
six
,再重新执行命令即可:sudo pip install six --upgrade --ignore-installed six
安装完成之后执行
frida --version
出现版本号即为安装成功:➜ frida --version
12.7.12下载
frida-server
在 https://github.com/frida/frida/releases 页面下载最新的
frida-server-xxx-android-xx.xz
解压之后重命名为 “frida-server”,重命名是为了后面使用方便
将
frida-server
push 到手机adb root #手机需要 root
adb push frida-server /data/local/tmp/
adb shell "chmod 755 /data/local/tmp/frida-server"
adb shell "/data/local/tmp/frida-server &"此时不要关闭命令行窗口,新开一个执行:
frida-ps -U
列出手机上所有进程即为安装成功:
➜ frida-ps -U
PID Name
----- ---------------------------------------------------
2746 .dataservices
1136 ATFWD-daemon
750 android.hardware.audio@2.0-service
1226 android.hardware.biometrics.fingerprint@2.1-service
751 android.hardware.bluetooth@1.0-service-qti
752 android.hardware.camera.provider@2.4-service
...
使用
新建一个 “hook.js” 文件,内容如下:
Java.perform(function () { |
下面分两种情况 (以斗鱼App为例,air.tv.douyu.android
为包名):
如果需要在应用启动期间就 hook ,关闭应用,输入命令:
frida -U -l hook.js -f air.tv.douyu.android
此时应用会处于等待状态,需要按照提示输入
%resume
, 应用会继续启动。这种情况下主进程其实是被 fork 出来的,但是不影响运行
如果不需要,直接打开App之后 attach 进程即可:
frida -U -l hook.js air.tv.douyu.android –no-pause
到这里,每个Activity
执行 onResume
的时候终端都会打印 “onResume() got called!”
下面就可以编辑 hook.js
编写自己的hook逻辑了。