抓包工具 - Fiddler(如何捕獲Android數據包)
移動設備訪問網絡原理
先看看移動設備是怎么去訪問網絡,如圖所示,可以看到,移動端的數據包是從wifi出去的。
可以看得出,移動端的數據包,都是要走wifi出去,所以我們可以把自己的電腦開啟熱點,將手機連上電腦,Fiddler開啟代理后,讓這些數據通過Fiddler,Fiddler就可以抓到這些包,然后發給路由器(如圖):
二、Fiddler抓取android數據包所需條件
1、電腦需要安裝Fiddler
2、測試手機需要支持Wifi
3、測試手機與電腦需要同一網絡
4、所測APP需支持代理
注:Iphone、Ipad、WinPhone等支持代理手機均適用
打開Wifi熱點,讓手機連上(我這里用的360wifi,其實隨意一個都行)
打開Fidder,點擊菜單欄中的 [Tools] –> [Fiddler Options]
Connections,設置代理端口:8888, 勾選 Allow remote computers to connect,即允許遠程計算機連接Fiddler.
注:8888為默認端口號,可修改,但需注意兩點,一是本機空閑端口,二是手機代理設置時要與fiddler的端口一致。
3、設置解密HTTPS的網絡數據
Tools –> Options-> Https,勾選”Decrypt HTTPS traffic”、”Ignore server certificate errors”,
4、查看本機的無線網卡IP
設置了上面的步驟后,就可以在 Fiddler看到自己本機無線網卡的IP了(要是沒有的話,重啟Fiddler,或者可以在cmd中ipconfig找到自己的網卡IP,注:一定要開啟本機的wifi熱點),
也可以在CMD中查看本機網卡的IP,輸入命令:ipconfig,
5、手機連接本機的Wifi,并設置代理
每個品牌的手機設置wifi的方式可能不一樣,這里以華為手機為例,如圖8所示,將手機連接至PC的wifi
勾選“顯示高級選項”-> 代理 選擇“手動” ->輸入服務器主機名和服務器端口 ->IP選擇“DHCP”->連接,即完成手機端設置代理操作,如圖9所示
注:服務器主機名:Fiddler所在電腦IP(即開啟wifi后,在fiddler或cmd中看到的無線網卡IP地址)
服務器端口: Fiddler使用的端口(即Options-Connections中設置的端口號)
6、手機下載安裝Fiddler證書
連接上wifi后,手機打開瀏覽器輸入代理IP+端口號(即是本機無線網卡IP,也是手機連接wifi時所設置的服務器主機名,這里的ip+端口號為192.168.191.1:8888),進入fiddler echo service頁面,下載Fiddler的證書,如圖10所示,點擊FiddlerRoot certificate
下載完成后,進行安裝證書
【注意】:如果打開瀏覽器碰到類似下面的報錯,請打開Fiddler的證書解密模式(如上面的步驟3所示):No root certificate was found. Have you enabled HTTPS traffic decryption in Fiddler yet?
設置完上面6個步驟后,即表明已設置完畢,此時用手機訪問應用,就可以看到fiddler抓取到的數據包了.