Charles抓包工具操作指南


一.Charles說明

Charles是HTTP代理/ HTTP監視器/反向代理,使開發人員或測試人員可以查看其計算機與Internet之間的所有HTTP和SSL/ HTTPS通信。 這包括請求,響應和HTTP標頭(其中包含cookie和緩存信息)。 Charles是用Java寫的,能夠在Windows,Mac,Linux上使用。安裝Charles的時候要先裝好Java環境。

二.Charles主要功能

  1. 截取Http 和 Https 網絡封包。
  2. 支持重發網絡請求,方便后端調試。
  3. 支持修改網絡請求參數。
  4. 支持網絡請求的截獲並動態修改。
  5. 支持模擬慢速網絡。

三.下載安裝

  1. 官方下載地址:https://www.charlesproxy.com/download/
  2. 下載地址:因避免鏈接失效,請在公眾號內回復【charles安裝包】獲取
  3. 破解工具下載地址:因避免鏈接失效,請在公眾號內回復【charles破解工具】獲取

四.破解步驟

注:僅限個人交流使用,切勿用於商業用途 將下載的charles.jar覆蓋到Charles的lib目錄下即可​ 查看是否破解成功,點擊charles菜單Help->About Charles,如下圖所示

五.電腦端安裝證書

對於HTTPS協議的數據,我們要在電腦端和手機端安裝證書,否則會看到返回的數據都是亂碼。

六. 手機端抓包設置

確保安裝Charles的電腦和你的手機在同一局域網內,因為Charles只是一個代理,需要將手機的代理指向 PC 機,不能互相訪問是不行的。

1.啟動charles。

2.在PC端使用cmd命令打開命令行窗口輸入ipconfig,獲取本機IP地址。 3.在手機端(以Android為例)的wifi代理設置那里去進行相關的配置設置。

4.長按wifi名稱,點擊“修改網絡”,勾選“顯示高級選項”,點擊代理,選擇手動,服務器主機名輸入PC機IP地址,如127.0.0.1,服務器端口(charles的默認設置):8888,點擊保存。

5.配置完成,charles會彈出與手機鏈接提示框,選擇allow

6.安裝手機端證書,在手機上打開網址 http://www.charlesproxy.com/getssl 安裝 Charles SSL 證書。 注意,同一個手機對應不同電腦上的Charles都要分別下載證書進行認證,因為手機的證書是和電腦端的Charles一一配對的。

注意:iOS系統,需要在設置→通用→關於本機→證書信任設置里面啟用完全信任Charles證書

7.Charles工具欄選擇Proxy-> SSL Proxying Settings,彈出SSL Proxying Settings選項卡,勾選Enable SSL Proxying,在Location部份選擇add,按如下圖添加,抓取任意站點、443端口的數據。

8.打開手機應用即可進行抓包操作。

七.Charles相關功能介紹

1.界面介紹

  • Filter:過濾,可以輸入關鍵字來快速篩選出 URL 中帶指定關鍵字的網絡請求。
  • Overview:查看這次請求的詳細內容,例如耗時詳細列車了請求開始時間、結束時間,響應開始時間、結束時間,總耗時、DNS耗時、網絡延時等。對於Size也詳細列出了請求頭大小、響應頭大小、壓縮比例等內容。
  • URL:進行網絡請求的鏈接;
  • Status:當前狀態,complete表示請求完成;
  • Responce Code:返回碼。不同的接口,不同的請求結果,返回碼都不同;
  • Protocol:使用的協議;
  • Method:請求方式,如GET請求,POST請求等;
  • Kept Alive:判斷當前是否正在鏈接(活躍);
  • Content-Type:發送的內容類型,如這里用的是XML文本,以UTF8的方式發送;
  • Client Address:客戶端的IP地址;
  • Remote Address:遠程服務器的IP;
Timing:
  • Request Start Time:請求開始的時間;
  • Request End Time:請求結束的時間;
  • Response Start Time:返回開始的時間;
  • Response End Time : 返回結束的時間;
  • Duration : 總時間;
Size:
  • Request:請求發送的大小;
  • Response:返回數據的大小;
  • Total:所有數據大小;
  • Request : 查看請求內容(底下的Headers,Query String,Cookies,Raw。)
  • Headers:發送請求的頭部信息;
  • Query String : 發送參數列表;
  • Cookies: 瀏覽器緩存;
  • Raw:發送的原生數據,包括了頭部和參數;
  • Reponse : 查看響應內容
  • Headers:是返回的頭部信息;
  • Text:返回信息(除去頭部)后的文本;
  • Hex:返回信息的16進制表示;
  • XML:我返回的數據是XML。如果你返回的是JSON,這里就會顯示JSON;
  • XML Text:如果你返回JSON,這里會顯示JSON Text;
  • Raw:返回的所有原生數據,包括頭部;
  • Summary: 查看發送數據的一些簡要信息(主機,狀態碼,數據的類型,header和body大下,加載時間,總時間)
  • Chart: Summary中簡要信息以圖表形式展示
  • Notes: 其他信息

(1)菜單欄:Proxy

從上到下依次為:開始/停止捕捉會話,開始/停止SSL代理,開始/停止模擬網絡環境,啟用/禁用斷點,記錄會話設置,SSL代理設置,節流設置,斷點設置,反向代理設置,端口轉發,記錄計算機上的所有請求,代理設置,訪問控制設置,外部代理設置,Web界面設置

(2)菜單欄:Tools No Caching Settings:禁用緩存設置。 Block Cookies Settings:禁用 Cookie設置。 Map Remote Settings:遠程映射設置,Map Local Settings:本地映射設置。 使用本機/其它服務器文件代替正常的response,作為長期response重定向功能使用 Compose:構造一條新的請求 Repeat:重復發包,Repeat Advanced:高級重復發包 重發請求,可以用於簡單的壓力測試 Rewrite Settings:重寫設置 動態修改request/response信息,不過他改變的只是部份信息,比如:主機地址(Host),返回狀態碼(response status),返回信息內容(body)等

(2)工具欄

從左到右依次為:清空抓取的請求數據,開始/停止抓取,開始/停止SSL代理,開始/停止模擬網絡環境,啟用/禁用斷點功能,根據所選請求創建一個新的請求,重復選擇請求,驗證選擇的響應,工具,設置

顯示模式 會話的兩種視圖模式為Structure,Sequence以及對應的Requet,Response面板組成 (1)Structure視圖,樹狀結構顯示,可以很清晰的看到請求的數據結構,而且是以域名划分請求信息的,可以很清晰的去分析和處理數據。

(2)Sequence視圖,水平結構顯示,可以看到全部請求,這里的結果以數據請求的順序來顯示,最新的請求顯示在最下面

如果不習慣Sequence默認的上下視圖,可以修改為類似Fiddler的左右視圖模式:Edit->Preferences->Viewers選擇Sequence view layout為Tall即可;

更改后的界面如下圖:

八.常見問題

Request和Response亂碼,首先要確保證書安裝成功,其次再看以下兩種方法。

方法一:修改根目錄下Charles.ini的配置文件,vmarg.5=-Dfile.encoding=UTF-8

方法二:Tools -> Rewrite… ->Add


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM