问题
一个日本游戏,用自己的游戏电信宽带进不去,一直卡住, 用邻居家(试了俩三个)的或者用移动网络都能正常进去. 既然不行,那我用代理咯,结果代理设了跟没设一样, 能行的设了代理还是可以,自己的宽带还是不行. 很神奇, 所以问题来了,要找出app卡在哪一步请求
思路1
抓包看所有请求.
由于设置代理无效,所以普通抓包也是无效的
用了 wireshark
来抓,好多东西…过滤出所有的 目标ip,发现这些ip都能请求得通… 没找到期望的那个不通的ip
思路2
基于他的请求是绕过代理的,搜了下站内相关 应该是出于俩种方案
-
这位老哥的方案[app开发,如何让请求绕开fiddler、Charles等抓包工具 - #14 由 dingronghui],通过NSURLSessionConfiguration
来设置. 所以打了断点,但是都没生效 (我的断点设置应该有问题)
-
socket 请求. 断点了 send
函数,lldb成功进去断点,但是看不懂那些代码…尴尬
我是不是应该hook某些函数来排查会简单点?
Zhang
2
NSURLSessionConfiguration
你hook这个把他的绕过代理的改动patch回去就完了
- socket 请求. 断点了
send
函数,lldb成功进去断点,但是看不懂那些代码…尴尬
这里面没东西啊,就是syscall让内核处理
hook 了相关的,断点所有 return %orig
都没有走进去
%hook NSURLSessionConfiguration
-(id)init:(bool) _w
{
return %orig;
}
+ (id)ephemeralSessionConfiguration
{
return %orig;
}
- (void)setConnectionProxyDictionary:(id)value
{
return %orig;
}
%end
看来是用了 socket 了, socket不知道要Hook 啥了
…
btw, 请教下,xcode lldb 可以监听某个对象的所有函数调用吗?现在 NSURLSession
是有被初始化的,我想监听这个对象后续的所有函数调用.
牛逼 … 这种自动生成所有也是种方法哈哈哈 我试试~