返回

Fiddler和安卓手机的强强联合:一探抓包的奥秘

闲谈

Fiddler:安卓手机抓包指南

安卓手机设置

安卓手机抓包前,需要先进行一些设置:

  • 启用 USB 调试: 转到“设置”>“关于手机”>点击“软件信息”7 次>返回“设置”>找到“开发者选项”>打开“USB 调试”。
  • 连接 Wi-Fi: 安卓手机和电脑连接同一 Wi-Fi 网络。

Fiddler 设置

在 Fiddler 中,进行以下设置:

  • 允许远程连接: 在“工具”>“选项”>“连接”中勾选“允许远程计算机连接”。
  • 解密 HTTPS 流量: 在“工具”>“选项”>“HTTPS”中勾选“解密 HTTPS 流量”。

连接安卓手机

连接安卓手机和电脑:

  • 使用 USB 数据线连接手机和电脑。
  • 在手机上确认“允许 USB 调试”。
  • 在 Fiddler 中,连接列表中会出现新的连接。

开始抓包

开始抓包:

  • 在 Fiddler 中,点击“捕获”>“开始捕获”。
  • 在手机上打开要抓包的应用程序。
  • Fiddler 中会显示网络请求和响应。
  • 点击请求或响应查看详细内容。

代码示例

以下 Python 代码示例演示了如何使用 Fiddler 捕获请求和响应:

import json
from mitmproxy.options import Options
from mitmproxy.proxy.config import ProxyConfig
from mitmproxy.proxy.server import ProxyServer
from mitmproxy.tools.dump import DumpMaster

# Fiddler 证书
cert_path = "./fiddler-root.pem"

# 设置代理配置
proxy_config = ProxyConfig(
    host="127.0.0.1",
    port=8080,
    ssl_insecure=True,
    cert_path=cert_path
)

# 设置 dump master
dump_master = DumpMaster(Options())

# 创建代理服务器
proxy_server = ProxyServer(proxy_config)

# 启动代理服务器和 dump master
proxy_server.start()
dump_master.run()

# 处理捕获到的请求
for flow in dump_master.flow_list:
    # 提取请求 JSON
    request_json = json.dumps(
        {
            "method": flow.request.method,
            "url": flow.request.url,
            "headers": dict(flow.request.headers),
            "body": flow.request.raw_content.decode("utf-8"),
        }
    )

    # 提取响应 JSON
    response_json = json.dumps(
        {
            "status_code": flow.response.status_code,
            "headers": dict(flow.response.headers),
            "body": flow.response.raw_content.decode("utf-8"),
        }
    )

    # 打印请求和响应
    print(f"请求:{request_json}\n响应:{response_json}")

# 关闭代理服务器和 dump master
proxy_server.shutdown()
dump_master.shutdown()

常见问题解答

1. 为什么 Fiddler 无法连接到我的安卓手机?

  • 检查 Wi-Fi 连接是否正常。
  • 确保 USB 数据线正常工作。
  • 确认已在手机上启用 USB 调试。

2. 为什么 Fiddler 无法解密 HTTPS 流量?

  • 确保已在 Fiddler 中勾选“解密 HTTPS 流量”。
  • 确保手机已安装 Fiddler 证书。

3. Fiddler 上没有显示任何请求或响应?

  • 检查捕获功能是否已开启。
  • 确认手机上的应用程序正在进行网络活动。

4. 如何过滤 Fiddler 中的抓包结果?

  • 使用 Fiddler 的筛选栏,根据主机、URL 或其他条件过滤结果。

5. Fiddler 可以用于哪些其他用途?

  • 分析网络性能。
  • 诊断网络问题。
  • 测试 web 应用程序。