一、安装androidtcpdump
在移动设备上捕获流量需要安装捕获工具,而androidtcpdump则是一款基于tcpdump的工具,具有捕获网络流量的能力,同时支持把捕获到的数据导出到PC进行分析。安装步骤如下:
adb push androidtcpdump /data/local/tmp/
adb shell chmod 6755 /data/local/tmp/androidtcpdump
adb shell setcap cap_net_raw,cap_net_admin=eip /data/local/tmp/androidtcpdump
执行完毕上述命令即可安装成功。
二、使用androidtcpdump捕获流量
捕获流量需要在移动设备上执行以下命令:
adb shell /data/local/tmp/androidtcpdump -i any -s 0 -w /sdcard/test.pcap
其中-i 表示指定网络接口,any 表示监听所有网络接口;-s 表示抓取数据包时每个包的长度;-w 表示输出的文件路径和文件名。
执行此命令后,androidtcpdump将开始抓取所有网络接口上的流量,并将其保存到指定的文件中。可以通过Ctrl+C命令停止抓取。
三、使用Wireshark分析流量
将捕获到的流量文件导入到Wireshark中处理和分析:
- 将指定的文件拷贝到PC上,使用Wireshark打开。
- Wireshark界面会显示捕获到的网络流量信息。
- 通过Wireshark的过滤功能,可以从海量数据中筛选出需要的数据包,从而更加方便地进行分析。
例如,使用以下过滤器可以只显示访问指定IP的数据包:
ip.addr==192.168.1.10
通过上述过滤器,Wireshark将只显示访问IP地址为192.168.1.10的数据包。
四、常用命令
- 捕获所有流量
- 捕获指定应用程序网络流量
- 捕获指定端口号的网络流量
- 实时输出捕获的网络流量
adb shell /data/local/tmp/androidtcpdump -i any -s 0 -w /sdcard/all.pcap
该命令捕获全部流量,并将结果存储到指定文件中。
adb shell /data/local/tmp/androidtcpdump -i any -s 0 -w /sdcard/app.pcap -p {package_name}
将指定应用程序的网络流量捕获并存储到指定文件。
adb shell /data/local/tmp/androidtcpdump -i any -s 0 -w /sdcard/port.pcap port {port_number}
捕获指定端口号的网络流量,并将结果存储到指定文件。
adb shell /data/local/tmp/androidtcpdump -i any -s 0
该命令开始实时输出网络流量,不保存到文件中。