如何在Frida Gadget(JavaScriptAPIiOS)中调用方法?

How to call methods in Frida Gadget (JavaScript API iOS)?

我有 class [ClassName] 和方法 [- setSomething]。

如何在没有拦截器的情况下用 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);
    }
}