贝博恩创新科技网

手机抓包教程,新手如何快速上手?

手机抓包教程(超详细版)

手机抓包,就是让你的手机和电脑“合作”,把手机 App 发送和接收的所有网络数据包(HTTP/HTTPS 请求、DNS 查询等)复制一份到电脑上,然后通过软件进行分析。

手机抓包教程,新手如何快速上手?-图1
(图片来源网络,侵删)

核心目的:

  • 网络调试: 开发者定位 App 的网络问题。
  • 安全分析: 白帽子或安全研究员分析 App 的安全性,寻找漏洞。
  • 数据分析: 了解 App 在后台做了什么,请求了哪些接口,传回了什么数据。
  • 逆向工程: 分析 App 的通信协议,用于“玩机”或开发第三方工具。

准备工作

在开始之前,请确保你准备好以下几样东西:

  1. 一台电脑: Windows, macOS, 或 Linux 均可。
  2. 一部手机: Android 或 iPhone。
  3. 一根数据线: 用于连接手机和电脑。
  4. 抓包软件:
    • 电脑端: Wireshark (最专业,数据包分析王者) 或 Fiddler (更易用,侧重 HTTP/HTTPS)。
    • 手机端 (可选但推荐): Charles (付费,跨平台,功能强大) 或 HTTPCanary (Android 免费,但需 Root)。

第一部分:Android 手机抓包

Android 系统相对开放,抓包方法也更多样,这里介绍三种主流方法:Fiddler (无需 Root)Charles (无需 Root)Wireshark + VPN (无需 Root)

使用 Fiddler (无需 Root,推荐新手)

Fiddler 是一个 Windows 下的强大 HTTP 调试代理工具,它的原理是让手机将所有网络请求都通过 Fiddler 软件转发。

手机抓包教程,新手如何快速上手?-图2
(图片来源网络,侵删)

步骤:

  1. 在电脑上安装并配置 Fiddler

    • 下载并安装 Fiddler (官网:https://www.telerik.com/fiddler)。
    • 打开 Fiddler,点击菜单栏的 Tools -> Options
    • Connections 选项卡中:
      • 勾选 Allow remote computers to connect
      • 记下端口号(默认 8888)。
      • 点击 OK,Fiddler 会提示你重启,点击 Yes
    • 重要: 为了抓取 HTTPS 流量,必须在 HTTPS 选项卡中:
      • 勾选 Decrypt HTTPS traffic
      • 点击 Actions -> Export Root Certificate...,将证书导出到桌面。
  2. 配置手机网络

    • 确保手机和电脑连接在同一个 Wi-Fi 网络下。
    • 在手机上,进入 设置 -> WLAN
    • 长按你当前连接的 Wi-Fi 网络,选择 修改网络网络配置
    • 代理代理服务器 选项中,选择 手动
    • 代理主机名: 输入你电脑的 IP 地址
    • 代理端口: 输入 Fiddler 中设置的端口号(默认 8888)。
    • 如何找到电脑的 IP 地址?
      • Windows: 打开命令提示符,输入 ipconfig,找到 IPv4 地址
      • macOS: 打开终端,输入 ifconfig | grep "inet " | grep -v 127.0.0.1
    • 保存设置。
  3. 在手机上安装 Fiddler 证书

    手机抓包教程,新手如何快速上手?-图3
    (图片来源网络,侵删)
    • 用手机浏览器访问 http://电脑IP地址:8888 (http://192.168.1.10:8888)。
    • 你会看到一个页面,点击 FiddlerRoot certificate 链接下载证书。
    • 下载完成后,点击安装证书。
    • Android 7.0 及以上系统: 系统会提示“此证书不是由受信任的证书颁发机构颁发的”,你需要先在 设置 -> 安全 -> 加密与凭据 -> 从存储设备安装 中,将你之前导出的 Fiddler 根证书(.pfx.cer 文件)导入到手机中,然后再安装下载的证书。
    • 如果安装失败,可以尝试将证书重命名为 FiddlerRoot.cer,然后通过文件管理器放到手机的 Download 目录下,再通过 设置 -> 安全 -> 从存储设备安装 来安装。
  4. 开始抓包

    • 现在打开 Fiddler,刷新一下,你会看到很多连接。
    • 在手机上打开你想要抓包的 App。
    • Fiddark 的会话列表中就会出现 App 的网络请求了!点击任意一个请求,在右侧的 Inspectors 标签页中可以查看详细的请求和响应内容。

使用 Charles (跨平台,功能强大)

Charles 是一款付费软件,但有免费试用版,它和 Fiddler 原理类似,但界面更现代化,跨平台支持更好。

步骤:

  1. 在电脑上安装并配置 Charles

    • 下载并安装 Charles (官网:https://www.charlesproxy.com/)。
    • 打开 Charles,点击菜单栏的 Proxy -> Proxy Settings...
    • Proxies 选项卡中,确保 Enable transparent HTTP proxying 是勾选状态,并记下端口号(默认 8888)。
    • SSL Proxying Settings... 中,勾选 Enable SSL Proxying,然后点击 Add,在 HostPort 中填入 和 443,这样就能抓取所有 HTTPS 流量。
  2. 配置手机网络

    • 和 Fiddler 一样,将手机的 Wi-Fi 代理设置为电脑的 IP 地址和 Charles 的端口号(8888)。
  3. 在手机上安装 Charles 证书

    • 用手机浏览器访问 chls.pro/ssl
    • 下载并安装证书,过程和 Fiddler 类似,可能需要手动导入根证书(在 Charles 的 Help -> SSL Proxying -> Save Charles Root Certificate... 中导出)。
  4. 开始抓包

    在手机上打开 App,Charles 就能捕获到网络请求了。


使用 Wireshark + VPN (无需 Root,最底层)

这种方法不依赖代理,而是通过 VPN 的方式将所有网络流量导向电脑,再用 Wireshark 进行抓包,这是最接近“真·抓包”的方法。

步骤:

  1. 在电脑上启动 Wireshark 并设置监听

    • 下载并安装 Wireshark (官网:https://www.wireshark.org/)。
    • 打开 Wireshark,在网卡列表中选择你连接 Wi-Fi 的那个网卡(通常是 Wi-Fi 或以太网)。
    • 点击左上角的蓝色鲨鱼鳍图标开始捕获。
  2. 在手机上安装 VPN App

    • 在手机应用商店搜索并下载一个支持“本地代理”或“PC 端代理”的 VPN App。
      • HTTPCanary (Android): 免费,功能强大,可以直接在手机上分析抓包结果,也可以设置本地代理。
      • Postern (Android): 免费,轻量级,专门用于配置本地代理。
    • HTTPCanary 为例:
      • 打开 App,同意相关权限。
      • 进入 设置 -> 代理 -> 代理模式,选择 本地代理
      • 代理地址: 输入你电脑的 IP 地址。
      • 代理端口: 输入一个端口号,1080
      • 保存设置,然后回到主界面,点击右上角的开关,启动 VPN
  3. 开始抓包

    • 手机的所有网络流量都会通过 HTTPCanary 转发到你电脑的 1080 端口。
    • 回到电脑上的 Wireshark,此时你应该能看到大量的数据包在滚动,这些就是手机的原始网络流量。
    • 过滤数据: 直接看原始数据包很困难,你需要过滤,在 Wireshark 的显示过滤器中输入 httptls (HTTPS),这样就能只显示 HTTP/HTTPS 流量了。
    • 分析数据: 双击一个数据包,可以查看其详细信息,包括源/目标 IP、端口、协议内容等。

第二部分:iOS (iPhone) 手机抓包

iOS 系统封闭性较强,无法像 Android 那样直接设置 Wi-Fi 代理,我们主要使用 CharlesFiddler 的方法,或者 Mac 自带的抓包工具

使用 Charles (最主流)

步骤:

  1. 前提条件: 你必须使用一台 Mac 电脑来配合 iPhone,Windows 上的 Charles 无法直接抓取 iOS 的 HTTPS 流量(需要安装额外的证书信任工具,非常麻烦)。

  2. 在 Mac 上配置 Charles

    • 安装并打开 Charles。
    • 配置代理和 SSL 代理,和方法二的 Android 部分完全一样。
  3. 在 iPhone 上配置

    • 确保 iPhone 和 Mac 连接在同一个 Wi-Fi 网络下。
    • 在 iPhone 上,进入 设置 -> 无线局域网
    • 点击你连接的 Wi-Fi 右边的蓝色信息图标 i
    • HTTP 代理 中,选择 手动
    • 服务器: 输入 Mac 的 IP 地址。
    • 端口: 输入 8888
    • 安装证书:
      • 用 Safari 浏览器访问 chls.pro/ssl
      • 下载并安装证书。
      • 如果安装失败,请前往 设置 -> 通用 -> 关于本机 -> 证书信任设置,在这里找到 Charles Proxy 并将其打开信任。
  4. 开始抓包

    在 iPhone 上打开 App,Charles 就能捕获到网络请求了。

使用 Mac 自带的命令行工具 (macOS 用户)

如果你是 Mac 用户,可以使用系统自带的 tcpdump 和 Wireshark 进行抓包。

步骤:

  1. 在 iPhone 上安装证书

    • 你需要一个 CA 证书,可以自己生成,也可以使用 Charles 或其他工具生成的。
    • .pem.cer 证书文件通过邮件或其他方式发送到 iPhone,然后打开安装。
  2. 在 Mac 上抓包

    • 将 iPhone 和 Mac 用数据线连接。
    • 打开 Mac 的终端。
    • 输入以下命令,将 iPhone 的网络流量实时写入到 capture.pcap 文件中:
      sudo tcpdump -i utun0 -s 0 -w capture.pcap
      • utun0 是 iPhone 通过 USB 共享网络时在 Mac 上显示的网卡名称。
    • 在 iPhone 上打开你想要抓包的 App。
    • 抓包完成后,在终端按 Ctrl + C 停止抓包。
    • 用 Wireshark 打开生成的 capture.pcap 文件进行分析。

常见问题与解决方法

  1. 抓不到 App 的数据?

    • 检查代理设置: 确保手机的 Wi-Fi 代理 IP 和端口完全正确。
    • 检查防火墙: 电脑的防火墙可能阻止了连接,尝试暂时关闭防火墙。
    • App 使用了非 HTTP 协议: 某些 App 可能使用 gRPC、WebSocket 或其他自定义协议,这些在 Fiddler/Charles 中可能无法直接解析,但数据包依然能被捕获。
    • App 使用了系统代理排除列表: 检查手机或电脑的代理设置,是否有域名被排除。
    • HTTPS 证书问题: 如果是 HTTPS,确保你已经在手机上正确安装并信任了抓包软件的根证书。
  2. 抓到的 HTTPS 内容是乱码?

    • 这是正常现象! 因为抓包软件中间人攻击了 HTTPS 连接,解密后再用抓包软件自己的证书加密发给你,如果你没有安装或信任抓包软件的根证书,浏览器/App 会提示证书不安全,抓包软件也无法解密,内容自然就是乱码。
    • 解决方案: 回去检查证书安装和信任的步骤。
  3. 手机无法上网或网络变慢?

    • 这是代理设置导致的,检查代理 IP 和端口是否正确,或者将手机的 Wi-Fi 代理设置为 即可恢复。
方法 平台 优点 缺点 适用人群
Fiddler Windows 免费,功能强大,HTTPS 抓取成熟 仅限 Windows,配置稍复杂 Windows 用户,新手入门
Charles Win/macOS 跨平台,界面友好,功能强大 付费,iOS 抓包需 Mac 专业开发者,跨平台用户
Wireshark + VPN All 最底层,能抓所有流量,最“真实” 需要额外 App,分析门槛高 安全研究员,网络工程师
Mac 命令行 macOS 免费,系统原生,无需额外软件 仅限 Mac,命令行操作,复杂 macOS 开发者,极客

对于绝大多数用户,推荐从 Fiddler (Windows) 或 Charles (macOS) 开始,它们提供了最友好的界面和最直接的 HTTP/HTTPS 分析能力,当你需要分析更底层的网络问题时,再考虑使用 Wireshark。

分享:
扫描分享到社交APP
上一篇
下一篇