Frida可以实现hook功能,可以动态调试,手机需要获取root权限
电脑和手机需要安装Frida
电脑环境准备:安装note.js ,安装Python
安装virtualenvwrapper
pip install virtualenvwrapper-win -i https://pypi.doubanio.com/simple
配置虚拟环境变量->WORKON_HOME(可选)
将WORKON_HOME添加到用户变量,可以修改虚拟环境的存储路径
创建虚拟环境
mkvirtualenv --python=C:\Python37\python.exe FridaHook
进入虚拟环境
workon FridaHook
建立好虚拟环境以后,所有的修改都是针对虚拟环境
安装Frida
pip install frida -i https://pypi.mirrors.ustc.edu.cn/simple/
pip install frida-tools -i https://pypi.mirrors.ustc.edu.cn/simple/
使用pip命令可以直接安装frida,但是速度会比较慢。
输入命令查看Frida版本
frida --version
新建一个文件夹存放代码,打开终端输入如下代码
npm i @types/frida-gum
运行完之后就会出现如下文件 (新建hook.js)
配置手机端的Frida环境
进入这个地址可以下载到各个版本的Frida
https://github.com/frida/frida/releases
下载Frida的Server端->frida-server-15.1.4-android-arm64.xz
,下载完成之后解压。然后push到手机的data/local/tmp
目录下,和IDA的动态调试有点类似 (推荐下载与电脑端的版本一致)
输入下面命令将文件推到手机端
adb push .\frida-server-15.1.4-android-arm64 /data/local/tmp/frida
然后进入手机端修改权限 。先进入手机的对应目录
adb shell
cd /data/local/tmp
chmod 777 frida
运行Frida
adb shell "/data/local/tmp/frida &"
或者
./frida &
如果运行frida出现手机重启,两种方式解决,一个是更换frida版本,还有就是可以选择在手机上使用MT管理器等运行脚本。
开启端口转发
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
PC端输入,检验手机端Frida服务是否运行成功(能显示进程列表就是成功)
frida-ps -U