短视频最新版通用quic协议解决方案
由于最新版的两款短视频都使用了quic协议,这就导致爬虫小伙伴在抓包的过程遇到不能抓包的问题,这里提供他们quic协议所有版本的通用解决方案,使他们不使用quic协议,直接通过Charles抓包。 由于不能透露app名字,dy、ks、那就按活跃度说吧。
quic协议是什么
QUIC(Quick UDP Internet Connection)是谷歌制定的一种互联网传输层协议,它基于UDP传输层协议,同时兼具TCP、TLS、HTTP/2等协议的可靠性与安全性,可以有效减少连接与传输延迟,更好地应对当前传输层与应用层的挑战。
最火的短视频app
对于该app禁止quic相关的so加载即可,记得没错的话该so是libsscronet.so
,通过ida也可以看到相关函
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
Util.xposedLog("CronetClient disable Cronet");
param.setResult(null);
}
});
这样就可以继续抓包奔放了。
排名第二的短视频app
该app使用quic协议比较早,之前由于不同版本混淆,导致hook代码要更新,后来通过看了一部分Cronet网络库的资料,找到该通用型的解决方案,该app的加载的so是libconnectionbase.so
,记得没错的话。
XposedHelpers.findAndHookMethod("com.**.**.**", lpparam.classLoader, "**", String.class, String.class, new XC_MethodHook() { @Override protected void beforeHookedMethod(MethodHookParam param) throws Throwable { param.args[0] = "{\"enable_quic\": false, \"preconnect_num_streams\": 2, \"quic_idle_timeout_sec\": 180, \"quic_use_bbr\": true, \"altsvc_broken_time_max\": 600, \"altsvc_broken_time_base\": 60, \"proxy_host_blacklist\": []}"; } });
另外一种
使用iptables
禁止掉udp的53端口,因为quic使用的udp发包,53端口又主要用于域名解析,所以禁止掉后,无法正常通讯,就会自动降级到http。
小结
现在的quic协议抓包基本是通过quic无法正常使用,迫使app使用http进行抓包,希望能通过分析cronet相关源码进行突破,直接抓取quic的相关数据包。