【精选】短视频ks(某手)高版本最新抓包方案,教你用hook大法绕过QUIC协议

您所在的位置:网站首页 ks是快手吗 【精选】短视频ks(某手)高版本最新抓包方案,教你用hook大法绕过QUIC协议

【精选】短视频ks(某手)高版本最新抓包方案,教你用hook大法绕过QUIC协议

2023-11-23 00:42| 来源: 网络整理| 查看: 265

一、前言 一般大多数网站、APP最常用的是http、https协议,而某两款最火的短视频dy(某音)、ks(某手)最新版使用的是quic协议(见附录1),导致fiddler和charles无法直接抓到包(某手7版本以下可以直接抓到包)。 网上有说用fiddler + xposed + justTrustMe能绕过某音的sslpinning,呵呵,别傻了好不好,dy(某音)、ks(某手)用的是非系统的sslpinning技术,使用那个方案只能绕过Java层的sslpinning,而dy(某音)、ks(某手)的sslpinning是在so层,根本行不通的好吧!不要再误人子弟了!(此方案亲测无用) 而我给大家带来的最常用一种方案(亲测可行),主要思路是禁用或者绕过quic相关的so加载,迫使它走https协议。某手的相关so文件是libconnection**.so ,接下来看方案准备前的环节。 二、方案 方案前准备

将抓包工具证书转换并添加到Android系统证书。今天我们用的抓包工具是charles、模拟器是夜神模拟器,首先需要做的是将Charles证书转换并添加到Android系统证书,方便HTTPS抓包。(Android 7.0以上版本必须要把证书添加到系统信任区,否则无法抓取https请求)。 具体步骤教程看: https://blog.csdn.net/m0_59683157/article/details/122812586 其中openssl需要单独下载安装,下载安装教程看: https://blog.csdn.net/houjixin/article/details/25806151

方案(一):安装xposed插件,绕过quic协议

1、下载安装xposed。在模拟器中xposed下载安装教程:https://baijiahao.baidu.com/s?id=1720356526386732365&wfr=spider&for=pc 2、xposed插件安装 (1)下载安装AndroidStudio,到官网下载安装即可 (2)用AndroidStudio搭建xposed环境,demo编写教程:https://blog.csdn.net/qq_39551311/article/details/119826692 (3)编写ks(某手)的xposed插件(在hook代码主体部分替换为如下代码):

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\": []}"; } });

3、最后用postern转发到抓包工具(某手app针对本地代理进行检测,所以需要用到代理转发工具进行代理转发) (1) postern下载地址:https://github.com/postern-overwal/postern-stuff (下载不了请联系我免费获取) (2)postern使用教程:https://cloud.tencent.com/developer/article/1979022

方案(二):hook大法之Frida绕过quic协议

1、安装配置Frida教程: https://blog.csdn.net/weixin_38819889/article/details/119845994 2、frida代码

import frida, sys jscode = """ Java.perform( function () { var Aegon = Java.use('com.***.aegon.Aegon'); Aegon.nativeUpdateConfig.implementation = function (a,b) { a = '{"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":[]}'; return this.nativeUpdateConfig(a,b); } } ); """ def message(message, data): if message["type"] == "send": print("[*] {0}".format(message["payload"])) else: print(message) process = frida.get_remote_device().attach("com.*.*") print("到这儿了") script = process.create_script(jscode) script.on("message", message) script.load() sys.stdin.read()

3、最后也还是要用postern转发到抓包工具

方案(三):直接用IDA反编译libconnection**.so文件,将ssl验证的地方修改

在这里插入图片描述

方案(四):直接用Frida来hook libconnection**.so文件,在验证sslpinning地方动态将值改为0即可 三、结语

上面第一、二种方案是最常用处理quic协议的方案,两种方案原理一样,实现不同,尤其推荐第一种,因为用Frida进行hook的时候需要把握住hook时机。 另外还可以直接到so层修改sslpinning的代码,有兴趣的同学可以自行学习,本文不做拓展。上篇介绍了dy(某音)的抓包,和某手抓包方案基本一致,有兴趣的可以一起研究。由于篇幅原因,只介绍大概流程,不详细介绍 注:这里的逆向技术仅用于学习、研究,不可用于商用或者违法用途,另外本文章属于原创,原创不易,请各位转发的时候也请注明转发地址,否则一旦发现,后果自负,谢谢各位观看。

四、附录 (一)Quic协议

QUIC(Quick UDP Internet Connection)是谷歌制定的一种互联网传输层协议,它基于UDP传输层协议,同时兼具TCP、TLS、HTTP/2等协议的可靠性与安全性,可以有效减少连接与传输延迟,更好地应对当前传输层与应用层的挑战。)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3