Frida相关API介绍

# 静态 & 实例方法 Hook

静态和实例方法的 hook 代码一致。

1
2
3
4
5
6
7
8
9
10
11
var className = "com.xxxx.xx";
var funcName = "func";
var classObject = Java.use(className);
// 静态和实例方法的hook代码一致
classObject[funcName].implementation = function (x) {
console.log(`${className} -> call ${funcName} - param: `, x);
x = "param"; // 修改参数 除基础类型外其他类型需要自行构造。
let result = this[funcName](x);
// result = "param"; // 修改返回值
return result;
};

# 构造方法的 hook ($init)

1
2
3
4
5
var classObject = Java.use("com.xxx.xx");
classObject.$init.implementation = function (a, b) {
console.log(`${className} -> call $init - param: `, a, b);
return this.$init(a, b);
};