Android利用Fiddler進行網路資料抓包

idaretobe發表於2015-01-09

主要介紹Android及IPhone手機上如何利用Fiddler進行網路資料抓包,比如我們想抓某個應用(微博、微信、墨跡天氣)的網路通訊請求就可以利用這個方法。

 

Mac 下請使用 Charles 代替 Fiddler,Charles 免費啟用碼為Registered name: a!nthony ortolani   License key: a!4036b2761c9583fda (需要將 name 和 key 中的 a! 都改為 a)

 

相對於tcpdump配合wireshark抓包的優勢在於:(1)無需root (2)對Android和Iphone同樣適用 (3)操作更簡單方便(第一次安裝配置,第二次只需設定代理即可) (4)資料包的檢視更清晰易懂,Fiddler的UI更簡單明瞭 (5) 可以檢視https請求。如果你堅持使用tcpdump也可見:利用tcpdump和wireshark抓取網路資料包

 

PS:需要1臺PC做輔助,且PC需要與手機在同一區域網內或有獨立公網ip
1、PC端安裝Fiddler
下載地址:Fiddler.exe,下面是Fiddler的簡單介紹(不感興趣的可以直接跳過):
Fiddler是強大且好用的Web除錯工具之一,它能記錄客戶端和伺服器的http和https請求,允許你監視,設定斷點,甚至修改輸入輸出資料,Fiddler包含了一個強大的基於事件指令碼的子系統,並且能使用.net語言進行擴充套件,在web開發和調優中經常配合firebug使用。
Fiddler的執行機制其實就是本機上監聽8888埠的HTTP代理。 對於PC端Fiddler啟動的時候預設IE的代理設為了127.0.0.1:8888,而其他瀏覽器是需要手動設定的,所以如果需要監聽PC端Chrome網路請求,將其代理改為127.0.0.1:8888就可以監聽資料了,手機端按照下面的設定即可完成整個系統的http代理。

 

2、 配置PC端Fiddler和手機
(1) 配置Fiddler允許監聽https

開啟Fiddler選單項Tools->Fiddler Options,選中decrypt https traffic和ignore server certificate errors兩項,如下圖:
fiddler https options
第一次會提示是否信任fiddler證書及安全提醒,選擇yes,之後也可以在系統的證書管理中進行管理。

 

(2) 配置Fiddler允許遠端連線
如上圖的選單中點選connections,選中allow remote computers to connect,預設監聽埠為8888,若被佔用也可以設定,配置好後需要重啟Fiddler,如下圖:
fiddler remote connect

 

(3) 配置手機端
Pc端命令列ipconfig檢視Fiddler所在機器ip,本機ip為10.0.4.37,如下圖
ipconfig
開啟手機連線到同一區域網的wifi,並修改該wifi網路詳情(長按wifi選擇->修改網路)->顯示高階選項,選擇手動代理設定,主機名填寫Fiddler所在機器ip,埠填寫Fiddler埠,預設8888,如下圖:
android network proxy

這時,手機上的網路訪問在Fiddler就可以檢視了,如下圖微博和微信的網路請求:
微信抓資料包
可以雙擊上圖某一行網路請求,右側會顯示具體請求內容(Request Header)和返回內容(Response Header and Content),如下圖:
微博網路攔截
可以發現Fiddler可以以各種格式檢視網路請求返回的資料,包括Header, TextView(文字), ImageView(圖片), HexView(十六進位制),WebView(網頁形式), Auth(Proxy-Authenticate Header), Caching(Header cache), Cookies, Raw(原資料格式), JSON(json格式), XML(xml格式)很是方便。

 

停止網路監控的話去掉wifi的代理設定即可,否則Fiddler退出後手機就上不網了哦。

 

如果需要恢復手機無密碼狀態,Android端之後可以通過系統設定-安全-受信任的憑據-使用者,點選證書進行刪除或清除憑據刪除所有使用者證書,再設定密碼為無。

 

如果只需要監控一個軟體,可結合系統流量監控,關閉其他應用網路訪問的許可權。

 

對你有幫助的話,去知乎點個贊讓更多人瞭解:如何在 Android 手機上實現抓包

相關文章