我想使用 Frida 为 Mac OS 上现有的 Objective C 类添加一个类方法。阅读 Frida文档后,我尝试了以下代码:
const NSString = ObjC.classes.NSString
function func (n) { console.log(n) }
var nativeCb = new NativeCallback(func, 'void', ['int'])
ObjC.api.class_addMethod(
NSString.handle,
ObjC.selector('onTest:'),
nativeCb,
ObjC.api.method_getTypeEncoding(nativeCb)
)
上面的代码看起来很简单。但是ObjC.api.class_addMethod()
调用之后,附加的App和Frida REPL都卡住了,看来指针不对。
我已经尝试了一整晚的许多可能的参数值,但仍然可以解决问题。我的代码有什么问题?