离线抓包
- 方式一:使用adb
- 手机用线连接电脑,开启debug模式
- 执行如下adb命令
adb shell
su
tcpdump -p -vv -s 0 -w /sdcard/tcpdump.pcap
(停止抓包,则ctrl+c)
exit
adb pull /sdcard/tcpdump.pcap tcpdum.pcap
然后可以使用wireshark打开tcpdum.pcap 文件,分析
- 方式二: tcpdump app 上执行抓包
相关软件很多,
同时推荐betterbatterystat
实时抓包分析
电脑需要安装wireshark,以及busybox(一个命令工具集合,在adb shell 提供大多数linux 下命令,我们要用到的nc 就在里面);
adb_tcpdump.sh
su
tcpdump -s 0 -w - |./system/busybox-armv7l nc -l -p 11333
adb_wireshark.sh
adb shell < adb_tcpdump.sh &
sleep 1
adb forward tcp:11333 tcp:11333
sleep 1
mkfifo /tmp/sharkfin
wireshark -k -i /tmp/sharkfin &
nc 127.0.0.1 11333 > /tmp/sharkfin
将上面2个sh 脚本防到同一目录下,然后在终端执行./adb_tcpdump.sh
就会弹出wireshark 窗口