轉載至https://www.cnblogs.com/lulianqi/p/11380794.html#l_2
實際操作步驟(Android)
筆者這里直接使用上面提到第3種方法(方法1在對於手機APP很難操作,方法2可能需要其他設備所以這里不使用),因為我們的測試對象是手機移動APP,所以我們首先要在手機上安裝一個VPN,這里使用一個十分方便的VPN軟件drony (介紹在這里https://github.com/SuppSandroB/sandrop/wiki/Drony-FAQ),drony會在你的手機上創建一個VPN,將手機上的所有流量都重定向到drony自身(不是流向vpn服務器) ,這樣drony就可以管理所有手機上的網絡流量,甚至可以對手機上不同APP的流量進行單獨配置。
1:安裝drony (這里手機使用的Android設備)
您可以在網絡上搜索drony選擇自己想要的版本進行安裝,或者在這里下載(https://files.cnblogs.com/files/lulianqi/Drony_102.apk),安裝完成后打開軟件如下圖
2:開啟代理抓包軟件(這里代理抓包軟件使用的是Fiddler)
Fiddler的使用這里不再介紹,需要打開遠程代理,並在手機中安裝Fiddler根證書
這里筆者開啟的遠程代理的地址是192.168.2.244:8888
關於證書安裝有些細節,Fiddler默認的根證書是cer格式,部分手機可能只能識別pem格式證書
直接使用openssl 轉一下就行了 (openssl x509 -inform der -in FiddlerRoot.cer -out FiddlerRoot.pem)
openssl 在中 windows/mac 一般都安裝有,命令直接使用就行了,使用生成的FiddlerRoot.pem安裝到手機上就行了(Charles默認就是pem證書)
3:配置drony轉發
打開Drony(處於OFF狀態),滑動到SETING頁,點擊選擇Networks Wi-Fi 進入配置
在網絡列表中選擇點擊當前手機wifi連接的網絡 (需要確保該網絡與Fiddler代理服務器網絡是聯通的)
配置要為當前網絡使用的代理入口(這里直接填寫fiddler代理地址就可以),選擇代理模式為手動(Manual)
注意Proxy type代理方式要選擇 Plain http proxy
Filter default value 選擇 Direct all ,然后點擊下面的Rule設置應用規則
默認您的規則里應該是空的,這里直接點擊上面的加號添加一個規則(符合規則要求的才會被轉發)
說明一下后面的操作會以咸魚或支付寶做演示說明,不過筆者當前測試項目並不是咸魚或支付寶,也不是其公司的員工,選擇這2個APP做演示是因為這些APP比較常用,且無法抓包的原因與筆者當前項目APP是類似的。
在Network id處 選擇當前wifi的SSID
Action 選擇 Local proxy chain
Application 選擇需要強制代理的APP
Hostname 及 Port 不填 表示所有的都會被強制代理,因為APP可能會使用其他的網絡協議不一定都是http,可能不希望把所有流量都引流到http代理服務器,這個時候就會使用這個配置指定ip及端口才轉發
完成后保存即可,然后返回到SETTING主頁,滑動到LOG頁,點擊下面按鈕,使其處於ON的狀態(表示啟用)
這個時候啟動支付寶或咸魚,我們就可以在Fiddler上看到正常的流量。不過如果你的運氣與筆者一樣可能只能看到這些Tunnel to (TLS管道建立),如果您使用的是Charles在列表里看到的可能是一個個紅叉。
當然筆者Fiddler根證書是安裝成功的,Fiddler配置也是正確的(手機上的Chrome https抓包都是正常的)