请教各位大大 如何在自己的程序中拦截safari 发出去的请求

1 charls 这种抓包软件是如何获取到iphone上发出去的网络请求?已解决
2 如何在自己的程序中拦截safari 发出去的请求
不胜感激

1 个赞

感谢您的回复,不通过http代理服务器,我们自己如何拦截到iphone 发出去的网络请求?

hook 系统级别的send&recv

nsurlsession 并不能拦截到safari中发出去的请求

感谢您的回答,
我又认真的看了一遍,但是如果我想让自己的程序拦截到safari 发出去的请求 要自己实现webinspector?
还有其他的方式吗?

safari应该是走的webkit, 你去拦截webkit就好了, 如果是越狱设备
com.apple.WebKit.*

1 个赞

NSURLProtocol 解救你
可以在 + (NSURLRequest *) canonicalRequestForRequest:(NSURLRequest *)request 做你想做的事

感谢,之前没有hook对进程

感谢您的回复。我ios 正向懂的少
使用 NSURLProtocol 需要在app层 实现对吗?
不能直接hook 或者找到webkit 哪个类实现了NSURLProtocol 协议

WekKit用NSURLProtocol会有很多麻烦, 不建议
我遇到过的就有body缺失, cookies缺失

1 个赞

抱歉挖坟了,请问要改请求的url要怎么改呢?
试了楼上的NSURLProtocol canonicalRequestForRequest;
试了NSURLRequest的initWithURL ;WKWebView的loadRequest等均无果T_T
(hook了mobilesafari、com.apple.WebKit.WebContent和com.apple.WebKit.Networking)
iOS13
谢谢!