一. 簡介及安裝
一、charles的使用
1.1 charles的說明
Charles其實是一款代理服務器,通過過將自己設置成系統(電腦或者瀏覽器)的網絡訪問代理服務器,然后截取請求和請求結果達到分析抓包的目的。該軟件是用Java寫的,能夠在Windows,Mac,Linux上使用。安裝Charles的時候要先裝好Java環境。
Charles的主要功能:
(1)截取Http 和 Https 網絡封包。
(2)支持重發網絡請求,方便后端調試。
(3)支持修改網絡請求參數。
(4)支持網絡請求的截獲並動態修改。
(5)支持模擬慢速網絡。
1. 下載
Charles下載地址
地址:https://www.charlesproxy.com/latest-release/download.do
2. 安裝
一路按下next即可安裝(保證電腦里沒有其他charles即可)
3. 破解
Charles第一種破解方法:
打開漢化補丁 選擇“中文破解版”,按下patch即可打開漢化補丁 選擇“中文破解版”,按下patch即可
Charles第二種破解方法:
破解地址:https://www.zzzmode.com/mytools/charles/
生成jar文件后,放到charles安裝目錄的lib目錄下
此時,重啟charles,查看已經破解,如下圖:
設置charles, Proxy->Proxy setting,就可以抓取http協議了(默認不用更改)
4. 進入界面
注意:安裝好charles后,要先進行漢化破解再打開,如果先打開了軟件,在漢化的話就會無效,只能重新安裝再進行以上步驟。
二. 連接
1.PC抓包
由於charles會自動配置瀏覽器和工具的代理設置,所以說打開工具直接就已經是抓包狀態了。直接打開網頁就可以了。
注意:
(1)Charles支持抓去http、https協議的請求,不支持socket。
(網絡上的兩個程序通過一個雙向的通信連接實現數據的交換,這個連接的一端稱為一個socket)
(2)防火牆關掉
點擊上方的代理—windows代理
電腦charles客戶端下載SSL證書
幫助—SSL代理—安裝charles證書
選擇當前用戶
將所有的證書都放入下列存儲—受信任的根證書頒發機構—下一步—完成
2.手機端抓包
使手機和電腦在一個局域網內,不一定非要是一個ip段,只要是同一個路由器下就可以了。
(1)首先利用cmd -config命令查看自己電腦的ip地址

配置代理服務器
菜單欄上選擇“代理—代理設置,
填入代理端口xxxx
勾選啟用透明HTTP代理
查看自己本機IP
(2)然后在手機端的wifi代理設置那里去進行相關的配置設置。
這里的代理服務器地址填寫為電腦的ip地址,然后端口這里寫8888(這個是charles的默認設置),如果自己修改了就寫成自己所修改的端口就可以了。


上述1、2步驟,只針對http請求。由於https協議的特殊性,所以要求電腦端和手機端都需要安裝下證書,否則會看到返回的數據都是亂碼。
a.電腦端證書下載

b. 手機端證書下載
在設備上打開這個網址 http://www.charlesproxy.com/getssl 安裝 Charles SSL 證書。
注意,同一個手機對應不同電腦上的Charles都要分別下載證書進行認證,因為手機的證書是和電腦端的Charles一一配對的。
C.相關配置
選擇Proxy | Proxy Settings,彈出proxy設置選項卡,勾選Enable SSL Proxying,在Location部份選擇add,按如下圖添加,抓取任意站點、443端口的數據。

3. 抓取的包全部出現unknow的解決方法
代理-SSL代理-啟用SSL代理-添加 如圖主機和端口都添加*。
繼續:代理-SSL代理-啟用SSL代理-添加 如圖主機添加*,端口添加443.
如圖所示即可完成 解決unknow問題。
如果個別情況出現unknow,可能是本身抓包軟件存在個別漏抓問題。可以忽略
三. 功能
從左到右分別為:
(1)清除當前會話
(2)停止記錄
(3)開始限流/停止限流
(4)開始斷點/停止斷點
(5)根據所寫內容撰寫新請求
(6)重發選定請求
(7)工具
(8)設置
1. 顯示模式:有結構和序列兩種模式
(1)結構模式:可以很清晰的看到請求的數據結構,而且是以域名划分請求信息的,可以很清晰的去分析和處理數據。
(2)序列:可以看到全部請求,這里的結果以數據請求的順序來顯示,可以根據時間、大小等自由排序
2. 模擬網速功能
在線上環境通常有些因為網速慢導致的bug,在本機無法重現,那時候就很抓瞎,模擬網速功能支持對帶寬、利用率、往返延遲、字節進行配置,並且支持3G/4G或者其他網絡模式。
上方工具欄的代理—限流設置—啟用限流
3. 過濾設置
方法一:軟件下方的過濾可以進行簡單的過濾,在主界面的中部的Filter欄中填入需要過濾出來的關鍵字。例如我們的服務器的地址是:www.baidu.com,那么只需要在 Filter 欄中填入www.baidu.com即可。
方法二:上方工具欄的代理—記錄設置—包括—添加
可以對網絡請求進行過濾。
然后填入需要監控的協議,主機地址,端口號等。這樣就可以只截取目標網站的封包了。
通常情況下,我們使用方法一做一些臨時性的封包過濾,使用方法二做一些經常性的封包過濾。
方法三:在想過濾的網絡請求上右擊,選擇“Focus”,之后在 Filter 一欄勾選上 Focussed 一項,如下圖所示:
這種方式可以臨時性的,快速地過濾出一些沒有通過關鍵字的一類網絡請求。