最近一直在開發基於微信公眾帳號的應用,在開發過程中遇到問題時,無法非常方便的獲取到數據包,導致分析解決問題比較麻煩。這裡介紹如何在Android手機上實現tcpdump抓包。
1、root機器
在用tcpdump抓包過程中,需要使用到root權限。當前可以進行root的方法有很多,個人推薦http://root.baidu.com/,安裝使用挺方便的。
2、准備adb工具
ADB是Android手機開發包中自帶的Bug調試工具,使用這個工具可以非常方便的通過PC對Android機器進行調試,在本人使用過程中經用將其用於在Android機器上面執行Shell命令
1)adb shell,在PC機的命令終端中直接執行Android的Shell命令(也可以通過在Android機器上面安裝命令終端等App來執行shell命令,從易用性來講肯定沒有使用adb shell方便的多,但也是一種方法)
2)adb push local remote,將PC上的文件推送到Android機器上面的路徑中
3)adb pull remote local,從Android機器上面的文件拉取到PC指定的路徑中
3、安裝tcpdump
Android系統雖然源自於Linux操作系統,為適用於手持設備環境的要求,對其進行一番簡化閹割是無法避免的,其中tcpdump這調試分析神器,就在被閹割的行列。為正常使用tcpdump,我們需要在Android系統中安裝一份tcpdump,主要步驟為:
1)下載tcpdump包
提供一份tcpdump包下載地址:http://www.strazzere.com/android/tcpdump
2)上傳tcpdump包到Android機器
adb push d:\tcpdump /data/local/tmp
remote安裝目錄需要根據情況進行自定義
3)執行chmod 0777 tcpdump命令,賦予可執行權限(執行chmod a+x tcpdump反映失敗,還沒整明白啥原因)
4、抓取數據
到此為止,基本上已經完成了准備工作。tcpdump命令的具體使用方法可以參見tcpdump手冊( http://www.tcpdump.org/)。在實際操作過程中,按照在Linux執行抓包的命令:tcpdump -Xnlps0 -i any port 80 -w pcap.cap時,卻告知tcpdump: syntax error,查看幫助文檔才發現不支持port類型過濾,為此最後將抓包命令簡化為:./tcpdump -Xnlps0 -w pcap.cap,一不做二不休,將全部的包都抓下來,在PC機器上面用Wireshark也相當可行。
5、分析數據
正如上面所講的,直接采用wireshark來分析數據比較方便。
Linux系統安全工具之tcpdump http://www.linuxidc.com/Linux/2014-10/107889.htm
Linux系統入門學習:如何使用tcpdump來捕獲TCP SYN,ACK和FIN包 http://www.linuxidc.com/Linux/2014-10/107722.htm
Linux運維工程師利器:Nmap和tcpdump http://www.linuxidc.com/Linux/2014-02/96993.htm
tcpdump的用法及使用案例 http://www.linuxidc.com/Linux/2013-11/93200.htm
Linux下實現 tcpdump http://www.linuxidc.com/Linux/2013-08/88775.htm
Linux操作系統tcpdump抓包分析詳解 http://www.linuxidc.com/Linux/2013-07/87309.htm
更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11