我正在使用 frida-trace 来记录一些方法,但我遇到了以下情况。
onEnter(log, args, state) {
log(`-[Somefunction somefield64:${args[2]}]`)
}
somefield64
返回我认为是 int64 之类的内容0x81008d000101e7
。
我不确定如何查看这背后的值,所有读取方法(readU64/S64)都抱怨它不是有效地址(访问冲突),所以我假设我需要更改格式。
查看反汇编器中的方法及其引用显示它只需要一个字符串
extern _some_field_constant
随着电话的
[Somefunction somefield64:**_some_field_constant]
所以我知道如何达到常数
Module.getExportByName('SomeModule',"_some_field_constant")
我可以看到地址。
我只是没有看到有关如何args[2]
通过 frida-trace检索字段的参考。
我有一个具有类似功能的类似方法(没有 int64)返回了一个__NSCFConstantString
并且只是设法做
onEnter(log, args, state) {
log(`-[SomeOther someField:${args[2]}]`);
log(ObjC.classes.NSString.stringWithString_(args[2]))
}
我需要做什么(或阅读技术文档,请原谅我对有经验的逆向工程人员的不完整理解/解释)将 int64 解析为 aNativePointer
以便我可以在内存中获取地址。