本文主要介紹如何使用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的時候,有更多功能、技巧可以挖掘出來,這篇文章算是對從來沒有用過這兩個工具的人的一個入門介紹吧。