手机如何抓包

以下是在 移动端(Android/iOS)抓包 的详细步骤,涵盖工具选择、代理设置、证书安装及常见问题处理:


一、准备工作

  1. 工具选择

    • Charles/Fiddler(推荐):功能强大的代理工具,支持 HTTPS 解密。
    • Wireshark:需 Root/越狱,适合高级用户。
    • HTTP Toolkit(免费):开源替代品,支持 Android/iOS。
    • Packet Capture(Android):无需 Root,通过 VPN 抓包。
  2. 环境要求

    • 手机与电脑在同一局域网(连接同一 Wi-Fi)。
    • 关闭防火墙或允许代理端口通信。

二、Android 抓包步骤(以 Charles 为例)

1. 电脑端设置

  1. 启动 Charles
    • 菜单栏 Proxy → Proxy Settings,设置代理端口(默认 8888)。
  2. 启用 SSL 解密
    • Proxy → SSL Proxying Settings → Add,输入 *:*(抓取所有域名)。
  3. 获取电脑 IP
    • Windows:ipconfig,查看 IPv4 地址。
    • macOS:ifconfig | grep "inet "

2. 手机端设置

  1. 连接同一 Wi-Fi
    • 进入 Wi-Fi 设置 → 长按当前网络 → 修改网络 → 高级选项。
  2. 配置代理
    • 代理类型:手动。
    • 主机名:电脑 IP(如 192.168.1.100)。
    • 端口:8888(与 Charles 一致)。
  3. 安装 Charles 证书
    • 手机浏览器访问 http://chls.pro/ssl,下载证书。
    • 进入 设置 → 安全 → 加密与凭据 → 安装证书 → CA 证书,选择下载的 .pem 文件。
    • Android 7+ 需额外配置:将证书安装到系统级(需 Root)或修改 App 的网络安全配置。

3. 开始抓包

  1. Charles 开始记录 :点击 Start Recording
  2. 操作手机 App:触发需要分析的网络请求。
  3. 查看请求:Charles 主界面显示所有 HTTP/HTTPS 请求和响应。

三、iOS 抓包步骤(以 Charles 为例)

1. 电脑端设置

同 Android 步骤,确保 Charles 代理端口开放。

2. 手机端设置

  1. 连接同一 Wi-Fi
    • 进入 Wi-Fi 设置 → 点击当前网络 → 配置代理 → 手动。
  2. 配置代理
    • 服务器:电脑 IP(如 192.168.1.100)。
    • 端口:8888
  3. 安装 Charles 证书
    • 手机 Safari 访问 http://chls.pro/ssl,下载描述文件。
    • 进入 设置 → 通用 → VPN与设备管理 → 已下载的描述文件,安装证书。
    • 信任证书设置 → 通用 → 关于本机 → 证书信任设置,启用 Charles 证书。

3. 开始抓包

操作与 Android 相同,iOS 请求会出现在 Charles 中。


四、处理 HTTPS 解密失败

若遇到 HTTPS 数据乱码(未解密),需检查:

  1. 证书是否正确安装:手机必须信任 Charles 的 CA 证书。
  2. App 是否绕过代理:部分 App(如金融类)禁用代理,需反编译或使用 Frida 绕过证书绑定。
  3. Charles 配置 :确保 SSL Proxying 包含目标域名(如 *:*)。

五、替代方案(无需电脑)

1. Android:使用 Packet Capture

  1. 安装 App :Google Play 下载 Packet Capture
  2. 启动 VPN 抓包
    • 点击 ▶️ → 选择目标 App → 开始捕获。
  3. 查看请求:自动解密 HTTPS,显示明文数据。

2. iOS:使用 Stream

  1. 安装 App :App Store 下载 Stream
  2. 配置抓包
    • 启动 → 安装证书 → 信任证书(需手动开启)。
  3. 开始捕获:选择目标 App,记录请求。

六、常见问题解决

1. 抓不到包

  • 检查代理配置:确认手机代理 IP 和端口正确。
  • 关闭 VPN/广告拦截器:可能干扰代理流量。
  • 重启 Charles/手机:清除缓存或临时故障。

2. HTTPS 无法解密

  • 重新安装证书:删除旧证书,重新下载安装。
  • 检查域名配置 :Charles 中 SSL Proxying Settings 需包含目标域名。

3. 数据乱码或加密

  • 禁用 HTTP/2 :Charles 中 Proxy → SSL Proxying Settings → Enable HTTP/2 取消勾选。
  • 使用 Wireshark:若无法解密,直接分析 TCP 层流量。

七、安全注意事项

  1. 仅限测试环境:勿在生产环境或敏感数据场景使用。
  2. 及时删除证书:抓包完成后,卸载 Charles 证书。
  3. 法律合规:确保抓包行为符合隐私政策和法律法规。

通过上述步骤,您可以在移动端轻松捕获并分析 HTTP/HTTPS 请求,快速定位网络问题或优化 API 性能。

相关推荐
007php0073 分钟前
百度面试题解析:synchronized、volatile、JMM内存模型、JVM运行时区域及堆和方法区(三)
java·开发语言·jvm·缓存·面试·golang·php
YSRM7 分钟前
Leetcode+Java+图论II
java·leetcode·图论
十铭忘9 分钟前
基于SAM2的眼动数据跟踪2
java·服务器·前端
okjohn20 分钟前
浅谈需求分析与管理
java·架构·系统架构·软件工程·产品经理·需求分析·规格说明书
用户03321266636734 分钟前
Java添加、设置和删除PDF图层:
java
荣光波比41 分钟前
K8S(十)—— Kubernetes核心组件详解:Pod控制器与配置资源管理
java·容器·kubernetes
m0_651593911 小时前
企业级订单系统架构设计:领域驱动 vs 数据驱动实践指南
java·系统架构·领域驱动ddd
WangMing_X1 小时前
C#上位机软件:2.5 体验CLR实现多语言混合编程
java·开发语言·c#
青云交1 小时前
Java 大视界 -- Java 大数据在智慧交通停车场智能管理与车位预测中的应用实践
java·数据采集·数据清洗·智慧交通·停车场智能管理·智能收费系统·车位预测
豐儀麟阁贵1 小时前
4.4数组的基本操作
java·开发语言·数据结构·算法