--- title: Drony + Charles + Frida 拦截 Flutter API 流量方案 type: experience permalink: main/projects/280dd2a0-d23d-4a71-91e1-dce4353163be/drony-charles-frida-拦截-flutter-api-流量方案 stable_id: 55f17fe5-35ee-4f9c-91dc-e9162310beaf scope: project memory_type: experience project_id: 280dd2a0-d23d-4a71-91e1-dce4353163be usage_profile_id: 0c9feb46-d06e-43cd-9ef0-c5813c84a998 status: active revision: 1 request_id: rapdrama-exp-drony-plan-20260925-0530 created_at: '2026-09-24T21:32:40.788358+00:00' updated_at: '2026-09-24T21:32:40.788358+00:00' tags: - drony - flutter - 抓包 - 方案 --- ## 看雪文章确认的 Flutter 抓包方案 文章来源:https://bbs.kanxue.com/thread-275953-1.htm 核心方案:**Drony + Charles/Burp + Frida SSL bypass** 1. 安装 Drony(org.sandroproxy.drony 1.3.154,APK 约 9MB)到模拟器 2. 配置 Drony 的 WiFi 代理指向 Charles 的 IP 和端口(10.0.2.2:8888) 3. Drony 会创建 VPN tun 设备截获所有流量(包括 Dart 的直连请求),转发到指定代理 4. Frida hook libflutter.so 的 session_verify_cert_chain 返回 true 绕过 SSL 校验 5. Charles 收到 CONNECT 请求,用自己的 CA 解密,显示明文 为什么 Drony 能解决问题: - Dart 的 HttpClient 不走 Android 系统代理,但 VPN tun 设备在网络层截获所有 IP 包,包括 Dart 直连的 TCP - 不需要 iptables DNAT(之前因为 DNAT 丢失原始目标地址导致 Charles 透明代理失败) - 不需要 hook libc connect(之前因为 MuMu x86_64 上 Frida 无法 hook bionic 短函数) - 不需要 mitmproxy(之前 WinDivert 搞崩宿主机网络) - 不需要重打包 APK 注意: - Drony 配置的代理类型要选 HTTP,不是 SOCKS - Charles 的 SSL Proxying 已开启全站解密(host=* port=*) - Charles 不要开 Windows 系统代理(windowsConfiguration.enableAtStartup=false) - Frida SSL bypass 的偏移是 0x8113ee(当前版本 libflutter.so,更新后可能变) - 先启动 Frida hook,再启动 Drony,确保第一次 TLS 握手时 hook 已生效