1. 程式人生 > >vivo Y22il 使用tcpdump和wiresharek 抓包

vivo Y22il 使用tcpdump和wiresharek 抓包

一般的無線網絡卡不支援監聽模式,即使有支援監聽模式的無線網絡卡,但大部分基於Windows的無線網絡卡驅動也不允許你切換到這個模式,所以需要額外的工作來完成。

一.    抓包方法

我使用了下面兩種方法執行:

1.      使用Fiddler軟體

這個軟體使用比較簡單,直接在電腦上安裝,並連線要監測的手機,最後最抓到的資料進行分析即可。

       缺點:只能分析HTTP資料包

2.      使用tcpdump和wireshark工具結合使用

Tcpdump 是一個可以在手機內部抓包的程式,通過將tcpdump抓到的手機資料包傳送到電腦上,然後通過wireshark對資料包進行分析。

具體的執行步驟如下:

①    獲取手機的root許可權

我的手機是 vivoY22il,使用過 root大師、百度一鍵root、360超級root等工具,root許可權都沒有獲取成功,最後通過 騰訊應用寶PC版成功獲得了root許可權。

②    將tcpdump檔案傳送到手機的底層

在DOS介面上輸入命令:

 Adb pushD:\tcpdump /data/local/tmp

 Chmod 777/data/local/tmp/tcpdump (改變tcpdump檔案的許可權)

③    使用tcpdump在手機底層抓包

/data/local/tcpdump –i any –p –s 0 –w/sdcard/netCapture.pcap

(注1:netCapture.pcap是儲存抓到的資料包檔案)

(注2:tcpdump [-aAdDeflLnNOpqRStuUvxX] [-c count] [ -Cfile_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引數表示埠。)

④    將抓包的資料包傳送到PC機上

Adb pull /sdcard/netCapture.pcap  D:\

⑤    用PC上的wireshark 分析資料包即可

二.    遇到的問題

看似簡單的操作,其實遇到了很多的問題,這裡的問題主要是上述第二個操作方法中遇到的:

1. 問題:在DOS介面上使用adb 命令,提示:顯示‘adb’不是內部或外部命令,也不是可執行的程式或批處理檔案

     解決辦法:下載了一個adb.zip,根據檔案中的安裝辦法進行安裝。

     原因:因為我的電腦上沒有adb可執行程式,所以無法執行adb 的相關命令,下載adb程式,並將檔案放到系統的查詢路徑中即可。

2. 問題:很多文獻提示,需要執行 adb root ,這樣做的目的應該是 成為root使用者,獲得對底層進行操作的許可權。但該命令的執行結果是:adbd cannot run as root in production builds

  解決辦法:輸入: adb shell

                                    Su

3.      在問題2的基礎上繼續操作, 執行 adb push D:\tcpdump/data/locap/tcp, 顯示: device not found

我執行adb devices 是可以找到裝置的,但依然出現上面的操作,這個問題的原因沒有找到

解決辦法: 進入DOS命令後,不獲取root 許可權,直接執行該命令,然後就成功了。