charles其實是一款代理服務器,通過成為電腦或者瀏覽器的代理,然后截取請求和請求結果達到分析抓包的目的。該軟件是用Java寫的,能夠在Windows,Mac,Linux上使用,安裝Charles的時候要先裝好Java環(huán)境。
Charles是在 常用的網絡封包截取工具,在做移動開發(fā)時,我們?yōu)榱苏{試與服務器端的網絡通訊協(xié)議,常常需要截取網絡封包來分析。Charles 通過將自己設置成系統(tǒng)的網絡訪問代理服務器,使得所有的網絡訪問請求都通過它來完成,從而實現(xiàn)了網絡封包的截取和分析。除了在做移動開發(fā)中調試端口外,Charles 也可以用于分析第三方應用的通訊協(xié)議。配合 Charles 的 SSL 功能,Charles 還可以分析?HTTP協(xié)議
Charles 是收費軟件,可以免費試用 30 天。試用期過后,未付費的用戶仍然可以繼續(xù)使用,但是每次使用時間不能超過 30 分鐘,并且啟動時將會有 10 秒種的延時。因此,該付費方案對廣大用戶還是相當友好的,即使你長期不付費,也能使用完整的軟件功能。只是當你需要長時間進行封包調試時,會因為 Charles 強制關閉而遇到影響。
1、截取 Http 和 Https 網絡封包 ? 抓包
2、支持重發(fā)網絡請求,方便后端調試
3、支持修改網絡請求參數
4、支持網絡請求的截獲并動態(tài)修改
5、支持模擬慢速網絡
截獲真實客戶端的HTTPS請求,偽裝客戶端向真實服務端發(fā)送HTTPS請求
接受真實服務器響應,用Charles自己的證書偽裝服務端向真實客戶端發(fā)送數據內容
租房子: ? 房客 ?? 中介 ? 房東
win+r 打開運行 輸入 cmd 打開命令
輸入命令 ipconfig
proxy->Proxy Settings...->proxies->port:8888勾選Enabletransparent http proxying->ok
注意 端口不能有沖突
>
注意:抓取手機設備上的請求包(手機和電腦必須在同一個局域網內,并關閉電腦防火墻、其他代理或者翻墻軟件)
第一步:在手機wifi 上設置代理 -> 長按無線網絡-->修改網絡-->高級選項-->代理 手動-->手動輸入輸入IP、端口號
服務器IP:PC機器的IP(通過之前介紹的查看IP的方法)
端口號:8888(通過之前介紹的查看端口的方法)
第二步:Charles彈出詢問“allow”或者“deny”,點擊“allow”按鈕允許;出現(xiàn)手機的HTTP請求列表
手機終端和計算機要在同一個網絡中
端口不能沖突
電腦防火墻
allow
1、打開charles
2、選擇help-ssl proxying
3、選擇第二個選項? 針對于web端
4、選擇安裝證書
5、選擇將所有的證書放入下列存儲
6、選擇受信任的根證書頒發(fā)機構
7、下一步? 完成
導出證書
1、打開charles
2、選擇help-ssl proxying
3、save
4、選擇存放路徑以及證書名
導入證書
Structure:樹狀結構顯示,將網絡請求按訪問的域名分類;
Sequence:水平結構顯示,將網絡請求按訪問的時間排序
設置會話捕捉條件,include 面板用于啟用/停止可以捕捉/顯示的會話;
exclude 表示不顯示的會話,在會話列表中右鍵選擇 ignore 時,對應的url會出現(xiàn)在這里;
比較好用的是過濾條件支持通配符,*表示任意多個字符,?表示一個字符,如Protocol中有http,https和 "",選擇空白或者輸入*都可以表示任意協(xié)議的請求;
過濾,可以輸入關鍵字來快速篩選出 URL 中帶指定關鍵字的網絡請求
在會話列表中右鍵點擊某個會話,然后在菜單中選擇Breakpoints;
通過Proxy-Breakpoint settings...中手動新建/啟用某個斷點;
要求勾選enable breakpoints之后當下次再有該請求時,會自動進入斷點模式;
一個完整請求會進入斷點模式2次:
1、request的發(fā)出之前;
2、收到服務器的response但尚未返回給客戶端的時候;
斷點request的時候,可以修改request信息,不過我們程序都有對請求header做校驗和處理,修改參數后一般就直接報錯了,所以這里看看response就好
fiddler抓http包
在打開的fidder中選中tools->options
在彈出的options對話框中選中capture? HTTPS? Conects? ? Decrypt?
Https? traffic? ? Ignoreserver? ? Certificate? ? errors(unsafa)
Actions->exprot? root? certificate? ? to? desktop
回到桌面雙擊 安裝證書 (信任的根證書目錄)
訪問項目地址 ,進行https抓包? ?
fiddler手機端
查詢本地IP地址win+r在運行中輸入cmd,在打開的命令中輸入ipconfig回車
在打開的fiddler界面中選擇'工具'-菜單-選項-在打開對話框中選擇connections
設置代理端口號為:8888? 確定重啟fiddler
在手機端無線網設置界面? 長按選擇‘修改網絡’,在修改網絡頁面選擇高級設置
代理服務器選擇手動? 輸入代理服務器地址和端口號
手機訪問項目地址? 在fiddler中查看抓到的內容?