如果想分析Android下 某個APP的網絡數據交互,需要在Android手機上抓包,最常用的抓包工具非tcpdump莫屬,用tcpdump生成Wireshark識別的 pcap文件,然后將pcap文件下載到電腦上,用電腦上的Wireshark加載pcap文件,通過Wireshark分析tcpdump抓取的數據。
一、安裝tcpdump
為Android手機安裝tcpdump,首先必須將Android手機root,現在市面上常用的root工具都很傻瓜很強大,推薦使用root精靈,將手機root以后,我們就可以為手機安裝tcpdump了。
先下載tcpdump文件, 下載地址:http://pan.baidu.com/s/1sjM7wTZ
adb push tcpdump /sdcard/ adb shell su cat /sdcard/tcpdump > /system/bin/tcpdump
上一條命令如果提示沒有權限,接著執行如下命令嘗試給 /system 目錄增加寫權限
su mount
在mount結果中找到包含/system的一行,類似如下:
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,seclabel,relatime,data=ordered 0 0
去處/system前半行,即/dev/block/platform/msm_sdcc.1/by-name/system,執行如下命令:
mount -o remount /dev/block/platform/msm_sdcc.1/by-name/system /system
這個時候/system就擁有寫權限了,繼續執行:
cat /sdcard/tcpdump > /system/bin/tcpdump chmod 777 /system/bin/tcpdump
到此為止,tcpdump就成功安裝到了/system/bin/目錄下,接著用如下命令還是抓包
二、使用tcpdump抓包
tcpdump -i wlan0 -s 0 -w /sdcard/1.pcap
可以結束時使用Ctrl+c快捷鍵讓tcpdump結束抓包,抓到數據會存到/sdcard/1.pcap文件內
重新打開一個終端(Terminal),執行如下命令
adb pull /sdcard/1.pcap .
1.pcap文件被下載到了終端上的當前目錄下
三、安裝Wireshark并分析pcap文件
從Wireshark官網https://www.wireshark.org/下 載適合你系統的Wireshark,然后點擊你下載后的Wireshark安裝包安裝好Wireshark,找到剛剛下載好的1.pcap文件,雙擊 1.pcap文件,1.pcap文件會自動被Wireshark打開。在Wireshark的Filter內輸入如下一些過濾條件,可以更加方便地分析數 據來源。
view plaincopy to clipboardprint? tcp.port == 80 //過濾來自80端口的TCP數據 udp.port == 12345 //過濾來自12345端口的UDP數據 ip.src == 192.168.0.1 //過濾源IP為192.168.0.1的數據 ip.dst == 192.168.0.1 //過目的IP為192.168.0.1的數據
以上過濾條件可以用and跟or相互組合,例如
view plaincopy to clipboardprint? tcp.port == 80 and ip.src == 192.168.0.1 //過濾來自80端口,源IP為192.168.0.1的TCP數 udp.port == 12345 or ip.dst == 192.168.0.1 //過濾來自12345端口的UDP數據,或者目的IP為192.168.0.1的數據