frida hook 重载函数的几种写法
apply arguments
MyClass.MyFunc.overload("java.util.List").implementation = function() {
this.MyFunc.overload("java.util.List").apply(this, arguments);
}
argments下标
MyClass.MyFunc.overload("java.util.List").implementation = function () {
this.MyFunc(arguments[0]);
};
整数的
MyClass.MyFuncs.overload("int", "int").implementation = function (s1, s2) {
var ret = this.MyFuncs(s1, s2);
}
字符串数组
hook.hookMeArray.overload("[Ljava.lang.String;").implementation = {}
用call
var Handler = classFactory.use("android.os.Handler");
var Looper = classFactory.use("android.os.Looper");
var looper = Looper.getMainLooper();
var handler = Handler.$new.overload("android.os.Looper").call(Handler, looper);
MyClass.MyFunc.overload("java.lang.String;").implementation = {
this.MyFunc.overload("java.lang.String").call(this, args[1])
MyClass.MyFunc.overload("java.lang.String").call()
}