本篇文章是阐述如何通过frida来定位网络请求发送位置.
在iOS的网络请求中,发送网络请求经常会用到 [NSURL URLWithString:@“xxx”], 所以可以通过追踪此函数, 打印堆栈信息, 从而快速定位到网络请求发送的位置。
- 先打开应用, 然后在终端执行下面命令:
frida -U -m “+[NSURL URLWithString:]” 应用名称 - 在handlers文件夹中修改 URLWithString_.js 内容, 然后重新执行上面的命令.
{
onEnter(log, args, state) {
log(`+[NSURL URLWithString:` + ObjC.Object(args[2]) + "]"); //打印url
log('\n\n\tBacktrace:\n\t' + Thread.backtrace(this.context, Backtracer.ACCURATE).map(DebugSymbol.fromAddress).join('\n\t')); //打印堆栈
},
onLeave(log, retval, state) {
log("\n+[NSURL URLWithString:]--return=(" + ObjC.Object(retval) + ")");
}
}