Files
MemRelay/projects/280dd2a0-d23d-4a71-91e1-dce4353163be/Drony + Charles + Frida 拦截 Flutter API 流量方案.md
T
memrelay 4fb256c5d5 create: Drony + Charles + Frida 拦截 Flutter API 流量方案
MemRelay-Operation: memory-save:rapdrama-exp-drony-plan-20260925-0530
MemRelay-Resource: 55f17fe5-35ee-4f9c-91dc-e9162310beaf
2026-09-25 05:32:43 +08:00

46 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 已生效