Android網絡開發之用tcpdump抓包

    Android開發過程中,當涉及到網絡通信的時候,有一些字段需要抓包獲取。我之前因爲SSDP設備發現的包頭格式沒有寫對,經過抓包分析和標準包頭對比發現了這個困擾我很久的問題。總之,掌握在Android手機裏面抓包是很有必要的。

    準備工作:Android系統的手機,網絡環境,tcpdump,破解手機root權限,建議最好在手機裏面安裝RE文件管理器並且給root權限。具體步驟如下:

    首先,通過adb工具將tcpdump推送到手機,tcpdump的下載地址爲:http://www.strazzere.com/android/tcpdump。操作可以一條指令搞定:adb push c:/tcpdump /data/local/tcpdump。當然,用其他方式將tcpdump發送到手機也可以。

    然後,需要修改tcpdump的權限:

    C:\\adb shell

    $ su
    #chmod 777 /data/local/tcpdump

輸入su指令的時候,可能需要在手機上點擊確認按鈕。這樣adb就能有權限修改tcpdump的屬性了。

    開始抓包:

    adb shell
    $ su
    /data/local/tcpdump -p -vv -s 0 -w /sdcard/capture.pcap

    抓包結束只需要按下ctrl + c即可。需要注意的是:在Windows平臺下,ctrl + c會直接中斷,用該用ctrl + d或者其他指令結束該程序(Mac OS不受影響)。

    將抓包文件拉取出來:adb pull /sdcard/capture.pcap c:/    如果你沒有安裝RE文件管理器,可能看不到capture.pcap文件,但是它確實是存在的,原因是權限不夠(root創建的文件在Android下,普通權限程序無法查看)。

    接下來你就可以用Wireshark分析你抓的包了。打開的時候可能會報錯,因爲如果你用中斷的方式結束抓包,pcap文件尾會沒有寫入,忽略即可。


個人辛勤勞動成果,如有轉載,請註明出處,謝謝!

發佈了63 篇原創文章 · 獲贊 26 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章