1、frida安装运行
pc:pip install frida
模拟器:
adb connect 127.0.0.1:7555
adb shell
cat /proc/cpuinfo
下载对应版本frida-server,安装运行
adb push frida-server /data/local/tmp
adb shell
cd /data/local/tmp
chmod 777 frida-server
./frida-server
转发端口
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
输入frida-ps -U
查看进程
2、Hook普通方法
(1)初始运行效果
(2)反编译查看代码
(3)编写hook脚本
重新给参数a,b赋值,并将其相加的结果返回。
(4)运行js结果
frida -U -l hookpuTong.js HookTestDemo
3、Hook重载方法
(1)初始运行效果
(2)反编译查看代码
三种不同的参数,分别是无参数,int 型参数,以及一个构造参数。使用.overload()
选择hook不同参数的重载方法。
(3)编写int类型参数hook脚本
修改参数a的值及返回字段信息
运行结果:
frida -U -l hookChongZai.js HookTestDemo
(4)编写构造参数hook脚本
Money类:
hook脚本:
参数a为Money类,即overload(“com.xiaojianbang.app.Money”)
运行:
(5)编写无参数hook脚本
修改返回的字段信息
运行结果如下:
4、Hook构造方法
(1)初始运行效果
显示RMB:100
(2)反编译查看代码
Money类的构造方法
(3)编写hook脚本
构造方法要用 $init
修饰,而不是用要调用的方法名
(4)运行js结果
frida -U -l hookGouZao.js HookTestDemo
显示信息为修改后的Dollar:20000