手机如何抓包

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

相关推荐
Kyrie_Li28 分钟前
Mybatis缓存机制
java·mybatis
java干货仓库44 分钟前
Redisson 加锁和释放锁底层是怎么实现的?
java·redis
chengong99881 小时前
Spring Boot启动流程及源码实现深度解析
java·spring boot·后端
PhilipJ03031 小时前
分页优化之——游标分页
java·数据库优化·分页查询·游标分页
liuyang___1 小时前
spring boot+mybaits多条件模糊查询和分页查询
java·spring boot·后端
xxxlllli2 小时前
java小白日记38(集合-List)
java·list
油丶酸萝卜别吃2 小时前
springBoot中不添加依赖 , 手动生成一个token ,并校验token,在统一拦截器中进行校验 (使用简单 , 但是安全性会低一点)
java·spring boot·后端
Answer_ism2 小时前
【SpringMVC】SpringMVC进阶,类型转换器源码分析,json转换,视图解析器,以及操作各种域的API
xml·java·开发语言·后端·spring·tomcat·json
红豆和绿豆3 小时前
Jakarta EE 和传统的 Java EE 主要区别:
java