0

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

如何在没有 Interceptor 的情况下使用 JS API 调用此方法?

4

1 回答 1

0

功能:

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);
    }
}
于 2018-10-08T10:12:46.133 回答