主要介紹Android及IPhone手機上如何利用Fiddler進行網(wǎng)絡(luò)數(shù)據(jù)抓包,比如我們想抓某個應(yīng)用(微博、微信、墨跡天氣)的網(wǎng)絡(luò)通信請求就可以利用這個方法。
Mac 下請使用 Charles 代替 Fiddler。
相對于tcpdump配合wireshark抓包的優(yōu)勢在于:(1)無需root (2)對Android和Iphone同樣適用 (3)操作更簡單方便(第一次安裝配置,第二次只需設(shè)置代理即可) (4)數(shù)據(jù)包的查看更清晰易懂,Fiddler的UI更簡單明了 (5) 可以查看https請求。如果你堅持使用tcpdump也可見:利用tcpdump和wireshark抓取網(wǎng)絡(luò)數(shù)據(jù)包。
PS:需要1臺PC做輔助,且PC需要與手機在同一局域網(wǎng)內(nèi)或有獨立公網(wǎng)ip
1、PC端安裝Fiddler
下載地址:Fiddler.exe,下面是Fiddler的簡單介紹(不感興趣的可以直接跳過):
Fiddler是強大且好用的Web調(diào)試工具之一,它能記錄客戶端和服務(wù)器的http和https請求,允許你監(jiān)視,設(shè)置斷點,甚至修改輸入輸出數(shù)據(jù),F(xiàn)iddler包含了一個強大的基于事件腳本的子系統(tǒng),并且能使用.net語言進行擴展,在web開發(fā)和調(diào)優(yōu)中經(jīng)常配合firebug使用。
Fiddler的運行機制其實就是本機上監(jiān)聽8888端口的HTTP代理。 對于PC端Fiddler啟動的時候默認IE的代理設(shè)為了127.0.0.1:8888,而其他瀏覽器是需要手動設(shè)置的,所以如果需要監(jiān)聽PC端Chrome網(wǎng)絡(luò)請求,將其代理改為127.0.0.1:8888就可以監(jiān)聽數(shù)據(jù)了,手機端按照下面的設(shè)置即可完成整個系統(tǒng)的http代理。
2、 配置PC端Fiddler和手機
(1) 配置Fiddler允許監(jiān)聽https
打開Fiddler菜單項Tools->Fiddler Options,選中decrypt https traffic和ignore server certificate errors兩項,如下圖:
fiddler https options
第一次會提示是否信任fiddler證書及安全提醒,選擇yes,之后也可以在系統(tǒng)的證書管理中進行管理。
(2) 配置Fiddler允許遠程連接
如上圖的菜單中點擊connections,選中allow remote computers to connect,默認監(jiān)聽端口為8888,若被占用也可以設(shè)置,配置好后需要重啟Fiddler,如下圖:
fiddler remote connect
(3) 配置手機端
Pc端命令行ipconfig查看Fiddler所在機器ip,本機ip為10.0.4.37,如下圖
ipconfig
打開手機連接到同一局域網(wǎng)的wifi,并修改該wifi網(wǎng)絡(luò)詳情(長按wifi選擇->修改網(wǎng)絡(luò))->顯示高級選項,選擇手動代理設(shè)置,主機名填寫Fiddler所在機器ip,端口填寫Fiddler端口,默認8888,如下圖:
android network proxy
這時,手機上的網(wǎng)絡(luò)訪問在Fiddler就可以查看了,如下圖微博和微信的網(wǎng)絡(luò)請求:
微信抓數(shù)據(jù)包
可以雙擊上圖某一行網(wǎng)絡(luò)請求,右側(cè)會顯示具體請求內(nèi)容(Request Header)和返回內(nèi)容(Response Header and Content),如下圖:
微博網(wǎng)絡(luò)攔截
可以發(fā)現(xiàn)Fiddler可以以各種格式查看網(wǎng)絡(luò)請求返回的數(shù)據(jù),包括Header, TextView(文字), ImageView(圖片), HexView(十六進制),WebView(網(wǎng)頁形式), Auth(Proxy-Authenticate Header), Caching(Header cache), Cookies, Raw(原數(shù)據(jù)格式), JSON(json格式), XML(xml格式)很是方便。
停止網(wǎng)絡(luò)監(jiān)控的話去掉wifi的代理設(shè)置即可,否則Fiddler退出后手機就上不網(wǎng)了哦。
如果需要恢復(fù)手機無密碼狀態(tài),Android端之后可以通過系統(tǒng)設(shè)置-安全-受信任的憑據(jù)-用戶,點擊證書進行刪除或清除憑據(jù)刪除所有用戶證書,再設(shè)置密碼為無。
如果只需要監(jiān)控一個軟件,可結(jié)合系統(tǒng)流量監(jiān)控,關(guān)閉其他應(yīng)用網(wǎng)絡(luò)訪問的權(quán)限。