-
-
短视频dy、ks最新版通用quic协议解决方案
-
发表于:
2021-7-30 15:17
29106
-
短视频最新版通用quic协议解决方案
看到很多人在说短视频新版app抓不到包,这里接提供解决方案。
由于最新版的两款短视频都使用了quic协议,这就导致爬虫小伙伴在抓包的过程遇到不能抓包的问题,这里提供他们quic协议所有版本的通用解决方案,使他们不使用quic协议,直接通过Charles抓包。
由于不能透露app名字,那就按活跃度说吧。
quic协议是什么
QUIC(Quick UDP Internet Connection)是谷歌制定的一种互联网传输层协议,它基于UDP传输层协议,同时兼具TCP、TLS、HTTP/2等协议的可靠性与安全性,可以有效减少连接与传输延迟,更好地应对当前传输层与应用层的挑战。
最火的短视频app
对于该app禁止quic相关的so加载即可,记得没错的话该so是lib**cronet.so
,通过ida也可以看到相关函数名。
该部分的xposed代码如下:
1 2 3 4 5 6 7 | XposedHelpers.findAndHookMethod( "org.chromium.CronetClient" , lpparam.classLoader, "tryCreateCronetEngine" , Context. class , boolean. class , boolean. class , boolean. class , boolean. class , String. class , Executor. class , boolean. class , new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
Util.xposedLog( "CronetClient disable tryCreateCronetEngine" );
param.setResult(null);
}
});
|
这样就可以继续抓包奔放了。
排名第二的短视频app
该app使用quic协议比较早,之前由于不同版本混淆,导致hook代码要更新,后来通过看了一部分Cronet网络库的资料,找到该通用型的解决方案,该app的加载的so是libconnection**.so
,记得没错的话。
该部分的xposed代码如下:
1 2 3 4 5 6 7 | XposedHelpers.findAndHookMethod( "com.**.aegon.Aegon" , lpparam.classLoader, "nativeUpdateConfig" , 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\": []}" ;
}
});
|
最后+用postern转发到抓包工具。
下载地址:postern下载
看雪上的另外一种
使用iptables
禁止掉udp的53端口,因为quic使用的udp发包,53端口又主要用于域名解析,所以禁止掉后,无法正常通讯,就会自动降级到http。
小结
现在的quic协议抓包基本是通过quic无法正常使用,迫使app使用http进行抓包,希望能通过分析cronet相关源码进行突破,直接抓取quic的相关数据包。
希望哥哥们关注小公众号,稍后建群可以讨论。
参考文章
https://segmentfault.com/a/1190000039827785
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2021-11-9 20:12
被mb_aoooaosd编辑
,原因: