Android網絡數據抓包

jopen 10年前發布 | 67K 次閱讀 Android Android開發 移動開發

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

相對于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兩項,如下圖:
Android網絡數據抓包
第一次會提示是否信任fiddler證書及安全提醒,選擇yes,之后也可以在系統的證書管理中進行管理。

 

(2) 配置Fiddler允許遠程連接
如上圖的菜單中點擊connections,選中allow remote computers to connect,默認監聽端口為8888,若被占用也可以設置,配置好后需要重啟Fiddler,如下圖:
Android網絡數據抓包

 

(3) 配置手機端
Pc端命令行ipconfig查看Fiddler所在機器ip,本機ip為10.0.4.37,如下圖
Android網絡數據抓包
手機端瀏覽器訪問http://10.0.4.37:8888,即Fiddler所在機器ip加上端口,DL上網。顯示如下圖頁面:
Android網絡數據抓包
點擊FiddlerRoot certificate下載證書并重命名
Android網絡數據抓包
如何未設置鎖屏密碼,可能會提示”您需要先設置鎖屏密碼才能使用憑據存儲”,點擊確定進行設置。
之后打開手機連接到同一局域網的wifi,并修改該wifi網絡詳情->顯示高級選項,選擇手動代理設置,主機名填寫Fiddler所在機器ip,端口填寫Fiddler端口,默認8888,如下圖:
Android網絡數據抓包

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

 

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

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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!