Skip to content

抓取 Flutter 流量 ​

🐦 Flutter App 的 HTTP 流量,r0capture 的特殊挑战。

Flutter 的难点 ​

Flutter 用 Dart 语言,HTTP 走 Dart 自带的 dart:io HttpClient,底层是 Dart VM 编译的 SSL 实现(BoringSSL 静态链接进 libflutter.so),不走 Android 系统 SSL 栈。

维度普通 AppFlutter App
SSL 栈系统 ConscryptDart 自带 BoringSSL
SSL_read/write 在哪libssl.solibflutter.so 内部
r0capture 默认 hook✅❌ 抓不到

抓取方法 ​

方法1:定位 Flutter 的 SSL 函数 ​

Flutter 把 BoringSSL 静态链接,SSL_read 不是导出符号,需在 libflutter.so 内部找:

bash
# 用 r0capture 的 -ssllib 指定
r0capture -ssllib /data/app/.../libflutter.so -p -flutter.pcap com.example.app

但 Flutter 的 SSL 函数常被 strip 符号,需按特征码或偏移定位。

方法2:proxy 走系统代理 ​

部分 Flutter 版本支持 --enable-vm-service 或环境变量强制走代理。

方法3:降级到 Java socket ​

少数 Flutter 混合 App 部分流量走原生,可抓到。

常见失败 ​

Flutter 是 r0capture 的已知难点。详见 flutter-fail FAQ。

相关文档 ​

基于 VitePress 构建 · 教学用途