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參數表示端口。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章