手机如何抓包

以下是在 移动端(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 性能。

相关推荐
达文汐4 分钟前
【困难】力扣算法题解析LeetCode332:重新安排行程
java·数据结构·经验分享·算法·leetcode·力扣
培风图南以星河揽胜4 分钟前
Java版LeetCode热题100之零钱兑换:动态规划经典问题深度解析
java·leetcode·动态规划
启山智软28 分钟前
【中大企业选择源码部署商城系统】
java·spring·商城开发
我真的是大笨蛋30 分钟前
深度解析InnoDB如何保障Buffer与磁盘数据一致性
java·数据库·sql·mysql·性能优化
怪兽源码1 小时前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统
恒悦sunsite1 小时前
Redis之配置只读账号
java·redis·bootstrap
梦里小白龙1 小时前
java 通过Minio上传文件
java·开发语言
人道领域1 小时前
javaWeb从入门到进阶(SpringBoot事务管理及AOP)
java·数据库·mysql
sheji52612 小时前
JSP基于信息安全的读书网站79f9s--程序+源码+数据库+调试部署+开发环境
java·开发语言·数据库·算法
毕设源码-邱学长2 小时前
【开题答辩全过程】以 基于Java Web的电子商务网站的用户行为分析与个性化推荐系统为例,包含答辩的问题和答案
java·开发语言