通過抓包工具(fiddler)獲取手機app/微信的網絡信息


Fiddler是一個http協議調試代理工具,它能夠記錄並檢查所有你的電腦和互聯網之間的http通訊,設置斷點,查看所有的“進出”Fiddler的數據。 Fiddler 要比其他的網絡調試器要更加簡單,因為它不僅僅暴露http通訊還提供了一個用戶友好的格式。

 

1、PC端安裝Fiddler

下載地址:Fiddler.exe,http://www.telerik.com/download/fiddler

 

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端之后可以通過系統設置-安全-受信任的憑據-用戶,點擊證書進行刪除或清除憑據刪除所有用戶證書,再設置密碼為無。

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

利用fiddler抓取Android app數據包

做Android開發的朋友經常需要做網絡數據的獲取和提交表單數據等操作,然而對於調試程序而言,很難知道我們的數據到底是以怎樣的形式發送的,是否發送成功,如果發送失敗有是什么原因引起的。fiddler工具為我們提供了很方便的抓包操作,可以輕松抓取瀏覽器的發出的數據,不管是手機APP,還是web瀏覽器,都是可以的。

fiddler的工作原理

fiddler是基於代理來實現抓取網絡數據包的工作的,當我們開啟fiddler以后,fiddler會將我們的瀏覽器的代理默認進行更改為 127.0.0.1 端口是8888,這時fiddler的默認端口,也就是說我們發送的每一個請求和收到的每一個響應都會先經過fiddler,這樣就實現了抓取數據包的工作。

路徑:選項?>高級設置?>更改代理服務器設置?>局域網設置?>高級

9.回話面板說明:

session會話的分析

這里我隨便選擇一個會話來進行簡單的分析。

 

 

 

替換服務器端返回的數據

利用”autoresponser”可以替換服務器端返回的文件,當調試的時候需要替換服務器端返回的數據的時候,比如一個已經上線的項目,不可能真正的替換器某一個文件,我們可以這樣來操作

 

從圖片當中,可以很清晰的看出,當我再次加載該會話的時候,會顯示之前設置好的404代理。

如果需要設置不同的文件代理,也是可以的。比如對於該會話,原本服務器端返回的內容如下圖:

 

由於該session返回的是一個圖片類型的,所以我選擇ImageView這個選項卡,可以看到此時返回的圖片的樣子,那么如果需要用本地的文件代理該返回的內容,和之前的操作步驟都是一樣的,只是在選擇代理的時候選擇本地文件即可,如下圖:

 

 

這次,我選擇了一個本地的文件作為代理,此時當我再次重新請求該會話的時候,會返回本地的文件:

 

 

 

可以看出這個時候該會話返回的內容已經是我本地的代理了。

fiddler網絡限速

fiddler還為我們提供了一個很方便的網絡限速的功能,通過網絡限速的功能,可以來模擬用戶的一些真實環境。fiddler提供了網絡限速的插件,我們可以在他的官網下載:http://www.telerik.com/fiddler/add-ons

 

 

 

點擊”download”,下載完成之后,點擊安裝,需要重新啟動fiddler,在重新啟動fiddler之后,可以看到fiddler的工具欄選項卡,多出了一個FiddlerScript選項。

 

 

比如我需要在請求之前延遲一段時間,可以這樣做:

 

 

 

在onBeforeRequest方法中加入這樣一段代碼”oSession[“request-trickle-delay”] = “3000”;”,那么如果需要在服務端響應之間做延遲只需要將”oSession[“request-trickle-delay”] = “3000”;”中的request替換成response即可。

利用fiddler抓取Android app數據包

終於到了今天的主題了,如何利用fiddler抓取Android app數據包,其實也是很簡單的,只需要稍微配置一下就可以了。由於fiddler默認是抓取http協議的數據包,我們需要其能夠抓取https這樣的加密數據包,抓取Android app數據包,需要做如下配置:

1.配置fiddler

點擊工具欄選項”tools?>FiddlerOptions”

配置https:

 

 

 

配置遠程連接:

 

 

 

這些配置完成之后,一定要重新啟動fiddler。

可以看到fiddler的默認端口是8888,我們可以現在瀏覽器上輸入”http://127.0.0.1:8888”

 

 

到這里為止我們的fiddler就配置完成了,接下來需要配置手機上的無線網絡。

2.手機無線網絡配置

注意:如果需要fiddler抓取Android app上的數據包,那么兩者必須在同一個無線網絡中。(同時,必要時請關閉電腦的防火牆)

在手機的無線網絡配置之前,必須要首先知道fiddler所在主機的ip地址:

 

 

 

可以看到我的fiddler所在主機,也就是我的電腦在無線網中的ip地址是192.168.1.109

打開手機設置中的無線網絡界面,進行如下四步操作:

選中連接的網絡,點擊修改網絡

 

 

 

點擊高級選項

 

 

 

代理—>手動

 

 

輸入代理服務器的ip,也就是我們fiddler所在主機的ip地址,和端口,fiddler默認的端口是8888,IP選項設置為”DHCP”

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

點擊保存,此時手機端就配置成功了,打開fiddler,使用打開網易新聞客戶端。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

此時可以看到fiddler抓取的網易app發送和接收的相關數據包。

 

ok,左側是我們的所有會話,我隨機的選中一個會話,該會話是image類型的,查看該會話的內容,是我們網易新聞的頭條上的圖片。

注意:

1.關閉電腦的防火牆

2.如果需要抓取手機app的數據包,需要手機和電腦在都連接同一個無線網絡

3.抓完包以后將fiddler關閉(提高訪問網絡的速度)同時將手機上的代理關閉 (如果不關閉代理,當fiddler關閉,或者是兩者連接的不是同一無線網絡,手機會不能正常的訪問網絡)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM