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()
}

参考

posted @ 2021-04-27 11:47  wzqwer  阅读(755)  评论(0编辑  收藏  举报