1. 程式人生 > >Windows10用fiddler抓包Android應用(解決手機設定代理後無法上網,設定只抓app包)

Windows10用fiddler抓包Android應用(解決手機設定代理後無法上網,設定只抓app包)

1、環境準備

1、電腦上安裝fiddler
2、手機和電腦在同一個區域網內

2、設定

1.fiddler>Tools>Fiddler Options>Connections 勾選Allow remote computers to connect。
2.記住這裡的埠號:8888,後面會用到。
這裡寫圖片描述

3、檢視電腦ip

1.開啟cmd,輸入:ipconfig,記住這個IPv4地址。
這裡寫圖片描述

4、設定代理

1.手機設定->WLAN設定->選擇該wifi,點右邊的箭頭(有的手機是長按彈出選項框)。
2.選擇修改網路配置:

伺服器主機名:與主機電腦IP地址保持一致

伺服器埠號:8888
這裡寫圖片描述

3.儲存後就可以抓到來自手機的請求了。
4.手機端用瀏覽器訪問http://IP:埠,用電腦的埠和fiddler設定的埠訪問安裝證書,訪問網路,觀察fiddler能否成功抓包。這時候一般情況下手機網路能訪問,抓包成功。

5、連上電腦後,手機可能連不上網,解決方式

(1)開啟登錄檔,在HKEY_CURRENT_USER\SOFTWARE\Microsoft\Fiddler2下建立一個DWORD,值設定為80(十進位制)
這裡寫圖片描述
這裡寫圖片描述
(2)編寫FiddlerScript rule,點選Rules > Customize Rules,用ctr+f查詢到OnBeforeRequest方法新增一行程式碼.

if (oSession.host.toLowerCase() == "webserver:8888") 
        {
            oSession.host = "webserver:80";
        }

這裡寫圖片描述

這裡寫圖片描述
(3)此時手機應該能連上網了

6、抓APP上的HTTPS請求

1.如果app都是http請求,是不需要安裝證書,能直接抓到的,如果是https請求,這時候手機就需要下載證書了。

2.開啟手機瀏覽器輸入:http://10.168.xx.xx:8888 ,這個中間的host地址就是前面查到的本機地址。

3.出現如下畫面,點箭頭所指的位置,點選安裝就可以了。
這裡寫圖片描述

7、Fiddler證書安裝(檢視HTTPS)

1、首先確保安裝的 Fiddler 是較新的版本,比較老的版本可能會出現安裝不上fiddler證書生成器的問題。
2、關閉Fiddler。
3、下載並安裝Fiddler證書生成器。(注:Fiddler 證書生成器只能在 Vista 以上系統執行)(前面有下載連線),也可以通過下面地址下載:
下載地址http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2
4、開啟Fiddler,點選工具欄中的Tools——>Fiddler Options…
5、切換到 HTTPS 選項卡,勾選 Capture HTTPS CONNECTs,勾選 Decrypt HTTPS trafic,會彈出安裝證書的提示。一路點是或確定安裝即可。
這裡寫圖片描述
6、重啟fiddler,依然停留在 HTTPS 選項卡,點選右側Actions,能看一個下拉選單,點選 Export Root Certificate to Desktop,此時證書會生成到桌面上,名為 FiddlerRoot.cer,點OK儲存
這裡寫圖片描述
7、匯入證書進行安裝
這部分android和ios有一點不同。
方法一:
1)android可以連線到電腦上,從電腦上開啟手機的記憶體卡,直接把證書複製到SD卡中。
2)點選設定——>安全——>從SD卡安裝——>從內部儲存空間中找到證書,點選安裝即可(證書名稱可隨便命名)
方法二:
1)android可以連線到電腦上,從電腦上開啟手機的記憶體卡,直接把證書複製到SD卡中。
2)找到手機上該檔案存放位置,點選該檔名稱,會提示安裝(證書名稱可隨便命名)
方法三:
ios可以在手機瀏覽器上登入郵箱,然後將證書傳送到郵箱中,在手機上檢視郵件,點選附件進行證書的安裝即可

8、檢視HTTPS
開啟fiddler,Tools——>Fiddler Options…,切換到HTTPS選項卡,把選項都勾選上,點選儲存,就可以檢視HTTPS介面了
這裡寫圖片描述

8、設定過濾

1.手機上設定代理後,這時候fiddler上抓到的是pc和app所有的請求,如果pc上開啟網址,會很多,這時候就需要開啟過濾功能了。

2.開啟fiddler>Tools>Fiddler Options>HTTPS>…from remote clients only,勾選這個選項就可以了

…from all processes :抓所有的請求

…from browsers only :只抓瀏覽器的請求

…from non-browsers only :只抓非瀏覽器的請求

…from remote clients only:只抓遠端客戶端請求
這裡寫圖片描述
(注意:如果手機設定代理後,測玩之後記得恢復原樣,要不然手機無法正常上網。)