我们要hook其中的普通方法
首先用frida-server推送到手机端
adb push C:\Users\YWY\Desktop\frida-server-12.10.4-android-arm64 /data/local/tmp/fsx86
adb shell后进入到目录
会出现fsx86文件,但是现在还没有权限,因此要先修改权限,再进行启动
chmod 777 fsx86
./fsx86
选用默认端口,并进入自己搭建的虚拟环境
adb forward tcp:27042 tcp:27042
接下来再vscode中写hook代码
setImmediate(function(){ //setImmediate()防超时
Java.perform(function(){ //java hook代码必须放在perform下
//找到要hook的类并且用api:Java.use
var utils = java.use("com.xiaojianbang.app.utils");
//打开JEB在Mainfest目录下可以看到包名,就是package=com.xiaojianbang.app
utils.getCalc.implementation = function(a,b){
//对类下面的方法:getCalc进行hook,hook方法名叫implementation
var retval = this.getCalc(a,b);//再次调用函数,并接收参数
console.log(a,b,retval); //输出参数
return retval;//给出返回值
}
});
});
//相当于函数完全替换
转到命令窗口,输入命令,转到你写代码的FridaHook地址
cd /d D:\读书笔记\FridaHook
最后输入命令
frida -U com.xiaojianbang.app -l Hook.js
去模拟器中点击普通方法,就可以发现hook成功