Android利用tcpdump和wireshark抓取網路資料包
簡介
主要介紹如何利用tcpdump抓取andorid手機上網路資料請求,利用Wireshark可以清晰的檢視到網路請求的各個過程包括三次握手,但相對來說使用Fiddler進行網路資料抓包和展現更方便,優點包括:
(1)無需root
(2)對Android和Iphone同樣適用
(3)操作更簡單方便(第一次安裝配置,第二次只需設定代理即可)
(4)資料包的檢視更清晰易懂
(5) 可以檢視https請求
建議使用Fillder,具體可見:利用Fiddler進行網路資料抓包。
準備
1、下載並安裝tcpdump
2、啟動並執行tcpdump
3、利用wireshark分析資料
-
下載並安裝tcpdump
安裝tcpdump,命令列模式依次執行:
1.adb root 2.adb push C:\Users\Trinea\Desktop\tcpdump /data/local/tcpdump 3.adb shell chmod 6755 /data/local/tcpdump
其中adb push的第一個引數為本地tcpdump的路徑。
-
啟動並執行tcpdump
命令列模式執行下面命令:
--adb shell /data/local/tcpdump -n -s 0
這時在手機上做任何涉及到網路的操作都會在螢幕上打印出來,可以通過ctrl+c停止。
由於命令列最大輸出的限制及螢幕不斷滾動,檢視不方便,我們可以將抓取的網路包儲存到sd卡,如下命令:
--adb shell /data/local/tcpdump -i any -p -s 0 -w /sdcard/netCapture.pcap
依然通過ctrl+c停止,將檔案拉取到本地PC
--adb pull /sdcard/netCapture.pcap d:\\
通過–help我們發現tcpdump支援如下引數:
tcpdump [-aAdDeflLnNOpqRStuUvxX] [-c count] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -i interface ] [ -M secret ] [ -r file ] [ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -Z user ] [ expression ]
其中-c表示監控的請求個數;-C表示儲存檔案的最大大小;
-i表示監控的型別;-s表示抓取的網路請求返回的大小,0表示抓取整個網路包;-w表示抓取的包儲存的檔案路徑,此時不會在標準輸出列印。並且可以新增port引數表示埠。
-
利用wireshark分析資料
wireshark下載地址,中文版地址:http://www.onlinedown.net/softdown/2883_2.htm ,英文版地址(需要翻牆):http://www.wireshark.org/download.html
用wireshark開啟capture.pcap即可分析log
關於wireshark具體可見:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html