javascript - 如何调用Frida Gadget(JavaScript API iOS)中的方法?

标签 javascript ios debugging frida

我有类 [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);
    }
}

关于javascript - 如何调用Frida Gadget(JavaScript API iOS)中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51463919/

相关文章:

javascript - 在 json 数据中聚合值

具有多个值的数组的 JavaScript 输出显示单词 "object, object"

iphone - UIButton 的不同状态不起作用

.net - 如何将 Visual Studio 附加到尚未启动的进程?

javascript - ReactJs setState 更改数组中对象的属性

javascript - redux - 如何存储和更新键/值对

ios - ARKit3 硬件要求说明

ios - 在 Deezer iOS SDK 中恢复 session

java - IntelliJ 和 Eclipse : debug Java application started by Maven exec:exec

c - 如何在 Eclipse CDT 应用程序中分配输入文件而不是标准输入?