我正在尝试使用Frida开发测试工具。最近我尝试使用文档中的代码片段来记录回溯:
Interceptor.attach(Module.findExportByName(null, 'open'), {
onEnter: function (args) {
var path = Memory.readUtf8String(args[0]);
console.log("open" + path + ")\n\t" + Thread.backtrace(this.context, Backtracer.ACCURATE).map(DebugSymbol.fromAddress).join("\n") + "\n");
}
});
但是我们尝试使用我的应用程序(MyApp)运行脚本,我得到了这些:
open/var/mobile/Containers/Data/Application/E459A8E1-12D5-4E20-8F99-40CA90967C0B/Library/Caches/XXXX/XXXX.plist)
0x1ce3140f Foundation!_NSReadBytesFromFileWithExtendedAttributes
0x1ce356c7 Foundation!-[NSData(NSData) initWithContentsOfFile:options:error:]
0x1cecf0c1 Foundation!+[NSKeyedUnarchiver unarchiveObjectWithFile:]
0x534293 MyApp!0x4f0293
0x5341f5 MyApp!0x4f01f5
0x53450d MyApp!0x4f050d
0x53360f MyApp!0x4ef60f
0x5346b9 MyApp!0x4f06b9
0x8b4473 MyApp!0x870473
0xb81ecb MyApp!0xb3decb
0xb82225 MyApp!0xb3e225
0xb823bf MyApp!0xb3e3bf
0xb3974d MyApp!0xaf574d
0xb00533 MyApp!0xabc533
0x48039 MyApp!0x4039
0x218595c5 UIKit!-[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:]
你可以看到
可以表示 的地址Foundation
,但MyApp
它失败了。
从视频 19:33可以看出,DebugSymbol.fromAddress 可以符号化目标应用的地址。
我正在使用Frida 11.0.12,设备是 iPhone 5,iOS10.3.3 使用 h3lix-RC5 破解。
有人也遇到这个问题吗?