以下是在 移动端(Android/iOS)抓包 的详细步骤,涵盖工具选择、代理设置、证书安装及常见问题处理:
一、准备工作
-
工具选择:
- Charles/Fiddler(推荐):功能强大的代理工具,支持 HTTPS 解密。
- Wireshark:需 Root/越狱,适合高级用户。
- HTTP Toolkit(免费):开源替代品,支持 Android/iOS。
- Packet Capture(Android):无需 Root,通过 VPN 抓包。
-
环境要求:
- 手机与电脑在同一局域网(连接同一 Wi-Fi)。
- 关闭防火墙或允许代理端口通信。
二、Android 抓包步骤(以 Charles 为例)
1. 电脑端设置
- 启动 Charles :
- 菜单栏
Proxy → Proxy Settings
,设置代理端口(默认8888
)。
- 菜单栏
- 启用 SSL 解密 :
Proxy → SSL Proxying Settings → Add
,输入*:*
(抓取所有域名)。
- 获取电脑 IP :
- Windows:
ipconfig
,查看 IPv4 地址。 - macOS:
ifconfig | grep "inet "
。
- Windows:
2. 手机端设置
- 连接同一 Wi-Fi :
- 进入 Wi-Fi 设置 → 长按当前网络 → 修改网络 → 高级选项。
- 配置代理 :
- 代理类型:手动。
- 主机名:电脑 IP(如
192.168.1.100
)。 - 端口:
8888
(与 Charles 一致)。
- 安装 Charles 证书 :
- 手机浏览器访问
http://chls.pro/ssl
,下载证书。 - 进入
设置 → 安全 → 加密与凭据 → 安装证书 → CA 证书
,选择下载的.pem
文件。 - Android 7+ 需额外配置:将证书安装到系统级(需 Root)或修改 App 的网络安全配置。
- 手机浏览器访问
3. 开始抓包
- Charles 开始记录 :点击
Start Recording
。 - 操作手机 App:触发需要分析的网络请求。
- 查看请求:Charles 主界面显示所有 HTTP/HTTPS 请求和响应。
三、iOS 抓包步骤(以 Charles 为例)
1. 电脑端设置
同 Android 步骤,确保 Charles 代理端口开放。
2. 手机端设置
- 连接同一 Wi-Fi :
- 进入 Wi-Fi 设置 → 点击当前网络 → 配置代理 → 手动。
- 配置代理 :
- 服务器:电脑 IP(如
192.168.1.100
)。 - 端口:
8888
。
- 服务器:电脑 IP(如
- 安装 Charles 证书 :
- 手机 Safari 访问
http://chls.pro/ssl
,下载描述文件。 - 进入
设置 → 通用 → VPN与设备管理 → 已下载的描述文件
,安装证书。 - 信任证书 :
设置 → 通用 → 关于本机 → 证书信任设置
,启用 Charles 证书。
- 手机 Safari 访问
3. 开始抓包
操作与 Android 相同,iOS 请求会出现在 Charles 中。
四、处理 HTTPS 解密失败
若遇到 HTTPS 数据乱码(未解密),需检查:
- 证书是否正确安装:手机必须信任 Charles 的 CA 证书。
- App 是否绕过代理:部分 App(如金融类)禁用代理,需反编译或使用 Frida 绕过证书绑定。
- Charles 配置 :确保
SSL Proxying
包含目标域名(如*:*
)。
五、替代方案(无需电脑)
1. Android:使用 Packet Capture
- 安装 App :Google Play 下载 Packet Capture。
- 启动 VPN 抓包 :
- 点击 ▶️ → 选择目标 App → 开始捕获。
- 查看请求:自动解密 HTTPS,显示明文数据。
2. iOS:使用 Stream
- 安装 App :App Store 下载 Stream。
- 配置抓包 :
- 启动 → 安装证书 → 信任证书(需手动开启)。
- 开始捕获:选择目标 App,记录请求。
六、常见问题解决
1. 抓不到包
- 检查代理配置:确认手机代理 IP 和端口正确。
- 关闭 VPN/广告拦截器:可能干扰代理流量。
- 重启 Charles/手机:清除缓存或临时故障。
2. HTTPS 无法解密
- 重新安装证书:删除旧证书,重新下载安装。
- 检查域名配置 :Charles 中
SSL Proxying Settings
需包含目标域名。
3. 数据乱码或加密
- 禁用 HTTP/2 :Charles 中
Proxy → SSL Proxying Settings → Enable HTTP/2
取消勾选。 - 使用 Wireshark:若无法解密,直接分析 TCP 层流量。
七、安全注意事项
- 仅限测试环境:勿在生产环境或敏感数据场景使用。
- 及时删除证书:抓包完成后,卸载 Charles 证书。
- 法律合规:确保抓包行为符合隐私政策和法律法规。
通过上述步骤,您可以在移动端轻松捕获并分析 HTTP/HTTPS 请求,快速定位网络问题或优化 API 性能。