用adb和tcpdump在Android设备上抓包,在Wireshark上查看

直接上命令

$ adb shell "tcpdump -i any -w /sdcard/abc.pcap
$ adb pull /sdcard/abc.pcap /tmp
$ wireshark /tmp/abc.pcap

解释一下tcpdump各参数的意思:

-i 指定抓取的网卡(any表示所有网卡)

-w 将抓取到的数据保存到文件,-表示保存到STDOUT

由于adb控制台输出时会把LF转换成CRLF,实时抓包需要额外处理一下tcpdump输出的数据。

$ adb shell "tcpdump -i any -w - | busybox uuencode -" | busybox uudecode -o - | wireshark -k -i -

wireshark的-k参数表示直接开始抓取,-i参数表示从指定的网卡或者文件抓取(-表示STDIN)。

Continue Reading