標籤:android style http color 使用 os
經常會有一些測試需求比如:測試手機上某個app的網路通訊是否已經加密,或者測試某個app是否偷偷連結某些網站。
根據抓包的對象,主要有兩種途徑:
1. 在路由器端抓包:使用一台已經連入路由器的PC來抓取路由器上所有的資料轉送資訊。
2. 在終端抓包:在終端(手機,平板等)上抓取次終端裝置的網路傳輸資訊。
注意:可以很容易通過網路下載到很多可以用來抓包的apk,但是前提是android手機或者終端要root過,筆者試過其中的一、二款,感覺不夠理想。
其實網上的這些工具也都是使用tcpdump這款命令列工具來實現抓包的,下面我就來簡單說一下方法2,也就是終端抓包的具體操作:
【準備】
當然是需要下載好tcpdump這個工具:http://www.strazzere.com/android/tcpdump
你也可以在tcpdump的官網下載原始碼編譯得到,但是android系統的tcpdump可以從如上的網站得到。從如上的網站上下載的工具不依賴於手機的cpu架構,所以無論arm還是x86平台都可以運行,請放心使用。
【安裝】
安裝的難易程度因終端是否root而異。請使用adb將tcpdump傳輸到sd卡中
$> adb push tcpdump /sdcard/
對於已經root過的機器,請使用adb root ,adb remount 後,
$>adb root$>adb remount
然後將tcpdump拷貝到/system/xbin下,修改執行許可權(可以使用 chmod 777 tcpdump)
對於沒有root過的機器,可以使用一些工具,比如“刷機精靈”來取得root許可權。筆者是使用R.E瀏覽器這款應用手動將tcpdump從sdcard拷貝到/system/xbin,然後添加執行許可權。
經過如上的操作,你應該保證你的tcpdump這個檔案已經在/system/xbin下,並且已經具備了可執行檔許可權。
【抓包】
根據使用的情境不同,tcpdump的參數也有相應的設定,這裡列舉一個常用的 tcpdump -p -vv -s 0 -w /sdcard/log1.pcap
這裡將輸出都寫在了sd卡上的log1.pcap檔案中.
如果你使用如上的命令遇到了"device not suitable"類似的問題,說明執行許可權還是不對。筆者一般使用如下的命令抓包
$> adb shell su tcpdump -p -vv -s 0 -w /sdcard/log1.pcap
su是為了讓tcpdump在root下運行。
如果tcpdump成功的運行起來,你會看到命令列已經掛起了,這個時候你操作需要測試app,資料就被抓到了。
【分析】
得到的資料檔案XX.pcap可以用wireshark工具進行分析, 這個工具可以從http://www.wireshark.org/download.html得到。
如果成功安裝了wireshark,可以發現你抓出來的資料包有一個小表徵圖:
雙擊這個檔案,wireshark就會給出資訊:
這裡不打算介紹資料的分析方法,只簡單的說一下,首先要確定好你想要分析的資料所在的層(應用程式層,還是傳輸層,又或者是其他層),找到對應的協議,然後分析資料。
【總結】
以上就是抓包的方法,同樣可以在linux base的系統上使用。