Cronet 限制
⚠️ Cronet(Chromium 网络栈)自带 BoringSSL 副本,r0capture 可能抓不到。
概述
Cronet 是 Chromium 的网络栈,Google 把它打包成可在 Android 用的库(org.chromium.net)。许多大厂 App(Google 系、抖音等)用 Cronet 获得更好的 HTTP/3、QUIC 支持。
为什么可能抓不到
Cronet 自带 BoringSSL,可能不调用系统 libssl 的 SSL_read/SSL_write 导出符号,而是用自己静态链接的副本。r0capture 默认 hook *libssl*,覆盖不到。
尝试方案
bash
# 尝试指定 Cronet 的 SSL 库
python3 r0capture.py -U -ssl "*cronet*" com.app -v -p out.pcap
python3 r0capture.py -U -ssl "*boringssl*" com.app -v -p out.pcap若 Cronet 的 BoringSSL 是动态链接且符号可枚举,有机会 hook 到;若是静态链接进 libcronet.so,则 ApiResolver 找不到导出符号。
替代方案
- 阻断 UDP(QUIC 走 UDP)逼迫 Cronet 降级到 TCP HTTP/2,可能改走系统栈
- mitmproxy 中间人(需绕过 pinning)
- 反编译定位 Cronet 的 SSL 调用点,自定义 Frida 脚本 hook