本文主要介紹如何使用tcpdump和wireshark對android應用程序進行抓包并分析,需要說明的是在抓包之前,你的android設備必須root過了,另外你的電腦必須有android sdk環境。
下載并安裝tcpdump
tcpdump鏈接:http://www.tcpdump.org/
選擇一個版本下載并解壓提取出其中呃tcpdump文件,然后push到你的手機上去:
adb push c:\tcpdump /data/local/tcpdump
進一步操作:
adb shellsuchmod +x /data/local/tcpdump
然后就可以開始抓包了:
/data/local/tcpdump -p -vv -s 0 -w /sdcard/capture.pcap
這時你可以操作應用程序相應的操作了,抓包完畢后ctrl+c停止抓包。
然后將抓到pcap文件傳輸本地開始進行分析了,這里假設你pull到c盤目錄下。
adb pull /sdcard/capture.pcap c:/
使用wireshark分析抓包數據
pc上安裝wireshark
wireshark下載:http://www.wireshark.org/download.html
如果安裝完畢,就可以直接打剛才的pcap文件了。
使用過濾器filter
如果抓到的東西過多,可以使用上方的過濾器,比如我只看http協議,并且是由我設備發出的
右鍵記錄查看tcp stream
這個功能我比較喜歡,可以查看此次http,client端請求和server端返回的數據
還有我覺得更厲害的功能
可以把請求的內容和結果存儲下來,比如可以查看post的內容
這是在面板看到的具體的tcp/ip各層的內容
但是這種編碼之后,并且以字節流發出去的東西很讓人討厭,利用存儲可能,你就可以看到具體的結果了:
選擇file->export objects->http,導出這條記錄就可以啦。
最后總結下
這是我最近在工作中實際用得到的,但在實際操作tcpdump和wireshark的時候,有更多功能、技巧可以挖掘出來,這篇文章算是對從來沒有用過這兩個工具的人的一個入門介紹吧。