我有类 [ClassName] 和方法 [- setSomething]。
如何在没有 Interceptor 的情况下使用 JS API 调用此方法?
我有类 [ClassName] 和方法 [- setSomething]。
如何在没有 Interceptor 的情况下使用 JS API 调用此方法?
功能:
function modify_implementation(class_name, method_name, functions) {
try {
var methodObj = ObjC.classes[class_name][method_name]
var old_implementation = methodObj.implementation;
methodObj.implementation = ObjC.implement(methodObj, function () {
var args = [].slice.call(arguments); // modifying Arguments object into array
if(typeof functions['arguments'] === 'function') {
functions['arguments'](args);
}
var result = old_implementation.apply(null, args);
if(typeof functions['result'] === 'function') {
result = functions['result'](result);
}
return result;
});
} catch (err) {
console.log('[!] Error while hooking ' + class_name + ' [' + method_name + ']', err);
}
}