也可參考如下博客:
https://blog.csdn.net/dongyuxu342719/article/details/78933618
一、charles是什麼?
1.Charles其實是一款代理服務器,通過成爲電腦或者瀏覽器的代理,然後截取請求和請求結果達到分析抓包的目的。
2.該軟件是用Java寫的,能夠在Windows,Mac,Linux上使用。
3.支持抓去http、https協議的請求,不支持socket
4.charles會自動配置IE瀏覽器和工具的代理設置,所以說打開工具直接就已經是抓包狀態了
二、charles使用前準備
1.安裝Charles的時候要先裝好Java環境。
2.需要Mac上的破解版
3.需要下載根證書
4.移動設備如果想抓https的請求數據,需要安裝ssl證書
5.代理設置
下載地址和破解方法如下
Ø 下載地址:
https://www.charlesproxy.com/
Ø 破解方法:
關於抓包工具的Charles 破解方法【任何版本都有效】
破解地址:https://www.zzzmode.com/mytools/charles/
描述此工具用於生成破解後的charles.jar文件,blog介紹:https://blog.zzzmode.com/2017/05/16/charles-4.0.2-cracked用法輸入RegisterName(此名稱隨意,用於顯示 Registered to xxx),選擇已安裝的版本,點擊生成,並下載charles.jar文件替換本地charles.jar文件macOS: /Applications/Charles.app/Contents/Java/charles.jarWindows:C:\Program Files\Charles\lib\charles.jar注意僅用於學習交流,請勿用於任何商業用途
三、SSL安裝證書常見問題
1.ios 10.3以上,Charles抓https的請求都會失敗,提示錯誤信息爲
Failure SSLHandshake: Received fatalalert: unknown_ca 和Youmay need to configure your browser or application to trust the Charles RootCertificate.
解決方法是:
設置->通用->關於本機->證書信任設置,把安裝的證書後面的開關打開。
注:雖然charles的根證書已經在安裝列表中顯示,但它是被關閉的。在iOS 10.3之前,當你將安裝一個自定義證書,iOS會默認信任,不需要進一步的設置。而iOS 10.3之後,安裝新的自定義證書默認是不受信任的。如果要信任已安裝的自定義證書,需要手動打開開關以信任證書。
2.華爲、小米手機有點特殊。
瀏覽器下載好證書後,不能直接安裝,提示打不開文件,需要到設置-wifi,點擊高級,安裝證書
3.需要注意的是,即使是安裝完證書之後,Charles 默認也並不截取 Https 網絡通訊的信息,如果你想對截取某個網站上的所有 Https 網絡請求,可以在該請求上右擊,選擇 Enable,如下圖所示:
四、Charles主要功能
· 支持SSL代理。可以截取分析SSL的請求。
· 支持流量控制。可以模擬慢速網絡以及等待時間(latency)較長的請求。
· 支持重發網絡請求,方便後端調試。
· 支持修改網絡請求參數。
· 支持網絡請求的截獲並動態修改。
1.charles界面簡介
1.clear
2.stop recording/start recording
3.start throtting/stop throtting
4.Enable breakpoints/disable breakpoints
5.compose
6.repeat
7.顯示模式
charles抓包的顯示,支持兩種模式,Structure和Sequence,其特點分別如下。
(1) Structure形式如下圖優點:可以很清晰的看到請求的數據結構,而且是以域名劃分請求信息的,可以很清晰的去分析和處理數據。
(2) Sequence形式如下圖優點:可以看到全部請求,這裏的結果以數據請求的順序來顯示,最新的請求顯示在最下面
2.常用功能介紹
(1)過濾網絡請求
通常情況下,我們需要對網絡請求進行過濾,只監控向指定目錄服務器上發送的請求。對於這種需求,以下幾種辦法:
方法一:在主界面的中部的 Filter 欄中填入需要過濾出來的關鍵字。例如我們的服務器的地址是:http://wonapi.maxleap.com ,那麼只需要在 Filter 欄中填入wonapi 即可。
方法二:在Charles 的菜單欄選擇“Proxy”–>“Recording Settings”,然後選擇 Include 欄,選擇添加一個項目,然後填入需要監控的協議,主機地址,端口號。這樣就可以只截取目標網站的封包了。如下圖所示:
通常情況下,我們使用方法一做一些臨時性的封包過濾,使用方法二做一些經常性的封包過濾。
方法三:在想過濾的網絡請求上右擊,選擇 “Focus”,之後在 Filter 一欄勾選上 ocussed 一項,如下圖所示:
(2)模擬慢速網絡
在做移動開發的時候,我們常常需要模擬慢速網絡或者高延遲的網絡,以測試在移動網絡下,應用的表現是否正常。Charles 對此需求提供了很好的支持。
在Charles 的菜單上,選擇“Proxy”–>“Throttle Setting” 項,在之後彈出的對話框中,我們可以勾選上 “Enable Throttling”,並且可以設置 Throttle Preset 的類型。如下圖所示:
如果我們只想模擬指定網站的慢速網絡,可以再勾選上圖中的 “Only for selected hosts” 項,然後在對話框的下半部分設置中增加指定的 hosts 項即可。
修改網絡請求內容
(3)修改網絡請求內容
有些時候爲了調試服務器的接口,我們需要反覆嘗試不同參數的網絡請求。Charles 可以方便地提供網絡請求的修改和重發功能。
1.在相應的網絡請求上點擊右鍵,選擇 “beakpoints”
2.重新執行這個請求
3.點擊edit,編輯請求,點擊execute
4.進入編輯響應頁面。點擊execute。
5.查看手機端響應結果。
注意:compose也能達到相同效果,但僅針對當前此次請求。而打了斷點,每次發送這個請求,都會要求你去編輯。
(4)給服務器做壓力測試
我們可以使用Charles 的Repeat 功能來簡單地測試服務器的併發處理能力,方法如下。
我們在想打壓的網絡請求上(POST 或 GET 請求均可)右擊,然後選擇「Repeat Advanced」菜單項,如下所示: