手机抓包导出 PCAP 到 Wireshark 的流程
本篇讲怎么把安卓手机抓到的流量变成标准 PCAP 文件、搬到电脑 Wireshark 里打开分析,以及解密内容的衔接做法。相关文档:免root抓包怎么弄.md · 安卓查看应用联网记录的方法.md
一、先选对导出模式
以 PCAPdroid 为例,抓包本身默认「只分析不落盘」——停了就没了。想拿文件,开始前先在 Status 页把导出模式选好:
| 模式 | 拿到什么 | 适合 |
|---|---|---|
| PCAP File | 存成本机 .pcap 文件 | 事后分析、存档(推荐入门选这个) |
| HTTP Server | 局域网浏览器直接下载 | 不想插线,临时拉一份 |
| TCP Exporter | 实时推给电脑(pcap-over-ip) | 边抓边看、不丢包 |
| UDP Exporter | UDP 流推给电脑 | 老方案,Wi-Fi 上易丢包,不推荐 |
| No Dump | 不导出 | 只在手机上看列表 |
打算抓超过几分钟的内容,一开始就选 PCAP File,别等停了才想起来——进程被系统杀掉时,未导出的数据会一起消失。
二、文件怎么到手
PCAP File 模式:点开始时选存储位置,停止后文件默认在 Downloads/PCAPdroid 目录,用数据线、局域网共享或网盘搬到电脑都行。
HTTP Server 模式:开始后 Status 页会给出一个局域网地址,同一 Wi-Fi 下的电脑浏览器打开即下载。注意三点:进度条一直 0% 是正常的(流式传输);必须回手机点停止文件才完整;同一局域网任何人都能下这份流量,公共 Wi-Fi 别开。
TCP Exporter 模式:电脑端先起监听,例如 Linux 上 nc -lvp 1234 | wireshark -k -i -,手机端填电脑 IP 与端口后开始抓包,数据实时进 Wireshark。
三、在 Wireshark 里打开之后
普通 .pcap 直接双击就能看。几个让分析更顺的小设置:
- 想让 Wireshark 显示「这个包是哪个应用发的」:在手机端打开 PCAPdroid 扩展选项(会把应用 UID 与包名写进每个包),电脑端装上项目提供的
pcapdroid.lua插件,就能按应用过滤; - 解密过的流量要配钥匙:普通 pcap 模式下,停止抓包时会生成同名
.keylog文件——先在 Wireshark 的Edit → Preferences → Protocols → TLS里填上 keylog 路径,再打开 pcap,顺序反了看不到明文; - 买了 Pcapng 格式(付费功能)的话,密钥直接嵌在
.pcapng里,打开即见明文,省掉配路径这一步。
四、看结果前先知道三个偏差
免 root 抓包是「流量先过应用再出去」的模式,所以:
- 包的内容(L7 载荷)是原样的,但包头会被改写——进来方向的包只有目标 IP 和端口是真实的;
- 包的大小、时序这类三四层细节与原始网卡上的不完全一致,分析 TCP 行为要心里有数;
- 只包含本机出站连接,别的设备连进手机的流量不在文件里。
所以「谁连了哪里、传了什么内容」这类问题用这套流程完全够;要网卡级视角就得换路线(见免root抓包怎么弄.md 的路线对比)。
工具本体与安装入口见 PCAPdroid 介绍站;抓到数据后怎么在手机上先把无关流量滤掉,见安卓查看应用联网记录的方法.md。