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