最近在做抖音的数据爬取,但是在请求头中参数加密的问题使得无法进行数据的大量获取,因此想到使用hook的方式。
Frida是一款基于python+JavaScript的轻量级hook框架,Frida的动态代码执行功能,主要是在它的核心引擎Gum中用C语言来实现的。只需要几行c就可以在运行时内运行一段JavaScript,它可以完全访问Gum的API,允许你挂钩函数,枚举加载的库,导入和导出的函数,读写内存,扫描模式的内存等。
Frida的安装
需要在windows端安装frida客户端和在安卓端安装frida服务端。
1、windows安装客户端
在终端,输入命令:
pip install frida
然后输入命令安装frida-tools
pip install frida-tools
查看frida版本:
frida --version
2、安卓模拟器中安装frida服务端(以逍遥为例)
(1)查看安卓设备的CPU版本
getprop ro.product.cpu.abi
注意:需要在adb shell中执行才可。
(2)根据CPU版本去下载相应的frida-server,下载链接如下:
https://github.com/frida/frida/releases
(3)将下载下来解压的frida-server,放在安卓模拟器中,命令如下:
adb push frida-server-12.11.14-android-x86 /data/local/tmp
其中frida-server-12.11.14-android-x86为解压后得到的rida-server名称(因版本而异)
下面进行启动frida-server
首先输入如下命令,进行连接逍遥模拟器
adb connect 127.0.0.1:21503
进行mumu模拟器的连接
adb connect 127.0.0.1:7555
继续输入adb devices,可以查看是不是连接成功了。
只有连接模拟器成功了,才能成功启动frida,否则会显示设备查找不到。然后使用如下命令即可启动frida-server成功。
adb shell
cd /data/local/tmp
chmod 777 frida-server-12.11.14-android-x86
./frida-server-12.11.14-android-x86