手机如何抓包

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

相关推荐
Java中文社群2 分钟前
SpringAI版本更新:向量数据库不可用的解决方案!
java·人工智能·后端
王磊鑫15 分钟前
重返JAVA之路——图书管理系统
java·开发语言
听闻风很好吃18 分钟前
Java设计模式之观察者模式:从入门到架构级实践
java·观察者模式·设计模式
艺杯羹20 分钟前
JDBC 初认识、速了解
java·数据库·jdbc
陵易居士21 分钟前
Spring如何解决项目中的循环依赖问题?
java·后端·spring
铁弹神侯29 分钟前
Maven相关名词及相关配置
java·maven
会飞的皮卡丘EI42 分钟前
关于Blade框架对数字类型的null值转为-1问题
java·spring boot
雷渊1 小时前
如何保证数据库和Es的数据一致性?
java·后端·面试
fjkxyl1 小时前
Spring的启动流程
java·后端·spring
极客先躯1 小时前
高级java每日一道面试题-2025年4月06日-微服务篇[Nacos篇]-如何诊断和解决Nacos中的常见问题?
java·开发语言·微服务