frida hook重载函数的几种写法

简介: apply argumentsMyClass.MyFunc.overload("java.util.List").implementation = function() { this.

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


相关文章
|
6月前
|
JavaScript
在循环内错误使用函数定义(js的问题)
在循环内错误使用函数定义(js的问题)
35 0
|
6月前
|
编译器 C++
qt槽函数的四种写法
QT槽函数的四种写法
96 0
qt槽函数的四种写法
|
4月前
|
数据库 Python
Python模块重载的五种方法
【7月更文挑战第17天】在Python中实现模块重载可通过以下五种方法: 1. 使用`importlib.reload()`重新加载模块 2. 重新执行导入语句,先删除`sys.modules`中的模块再导入 3. 利用`exec()`函数直接读取并执行模块代码: ```python with open('my_module.py', 'r') as f: code = f.read() exec(code) 4. 通过新进程或子线程重新导入和执行模块. 5. 设计模块时采用动态加载配置或数据,避免直接重载.
188 4
|
JavaScript Java
酷似js的java函数简写——lambda表达式
酷似js的java函数简写——lambda表达式
|
6月前
|
算法 Serverless C语言
CMake函数和宏(function和macro):使用函数和宏提高代码可读性
CMake函数和宏(function和macro):使用函数和宏提高代码可读性
138 1
|
6月前
|
JavaScript
vue项目使用可选链操作符编译报错问题
vue项目使用可选链操作符编译报错问题
991 0
|
6月前
|
Android开发
Xposed模块 -- Hook函数参数
Xposed模块 -- Hook函数参数
96 0
|
JavaScript
TypeScript-继承和函数、函数声明和重载
TypeScript-继承和函数、函数声明和重载
69 0
TypeScript-继承和函数、函数声明和重载
lodash通过thru操作函数调用
lodash通过thru操作函数调用
114 0
ReactHooks11-自定义hook函数
ReactHooks11-自定义hook函数
86 0
ReactHooks11-自定义hook函数