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文件尾會沒有寫入,忽略即可。
個人辛勤勞動成果,如有轉載,請註明出處,謝謝!