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 許可權,直接執行該命令,然後就成功了。