Charles是一款常用的網絡抓包工具,啟動Charles后,會自動開啟的瀏覽器代理進行網絡請求截取,Charles和Fiddler基本功能差不多,只是Fiddler是免費的,但是沒有MAC版,Charles是屬於收費軟件,但是功能還是都能用的,只是有時間限制
Charles下載安裝
點擊下載Charles,進入官網下載頁面,選擇相應系統的安裝包,然后安裝即可,安裝完成后可根據下圖所示進行破解,破解后就沒有時間限制啦,激活工具

Charles介紹
Charles界面視圖如下所示:

常用功能
1. 錄制設置(Recording Settings…)
Options:設置錄制記錄數據大小
Include:添加或移除要錄制的請求,需填寫要監控的協議、主機和端口信息,目的是達到過濾效果
Exclude:與Include相反,填寫的是要排除的請求

還有其它兩種方式進行過濾方式:
- 錄制結束后在過濾欄搜索Host,請求列表只顯示滿足搜索條件的結果
- 錄制結束后選擇要查看的請求,右鍵點擊【Focus】,選擇后請求列表會把其它請求放到“Other Hosts”的分類中
2. 代理設置(Proxy Settings)
為了能抓取HTTPS請求,需要配置好代理,否則https請求數據顯示亂碼
首先安裝證書,點擊【Help】→【SSL Proxying】→【Install Charles Root Certificate】,根據下圖所示進行安裝

然后設置代理
點擊【Proxy】→【Proxy Settings…】,勾選Enable transparent HTTP proxying
,點擊【OK】
點擊【Proxy】→【SSL Proxying Settings…】,勾選Enable SSL Proxying
,添加要包含或排除的請求,若是需要錄制所有https請求,則Host和Port直接使用通配符*
號即可

3. 禁用緩存(No Caching…)
有些請求獲取不到可能是因為存在緩存,所有在錄制之前可以先設置不從緩存中獲取數據,若是針對特定的請求不走緩存,則需勾選Only for selected locations
,並添加請求信息

以上步驟完成后就可以配置完成后就可以抓取請求數據啦
4. 弱網設置(Throttle Settings…)
此設置通常用於移動端抓包時使用,可模擬不同的網絡環境,勾選Enable Throttling
,特定請求則需添加信息,可修改帶寬、穩定性等信息后,保存預設到選項中

5. 本地映射(Map Local…)
選擇需要本地映射的接口,右鍵選擇Map Local,此方式自己僅需選擇本地映射文件,Map from信息會自動填充,重新獲取響應后得到的時本地的響應數據

6. 斷點設置(Breakpoints Settings…)
選擇要打斷點的接口,右鍵選擇Breakpoints
,然后打開斷點設置窗口,點擊【Proxy】→【Breakpoint Settings…】,剛剛的接口信息顯示在窗口信息中,勾選Enable Breakpoints
,點擊【OK】,重新獲取該請求,會自動打開”Breakpoints“tab頁,修改接口參數信息后,點擊【Execute】可獲取到響應的返回信息

7. 編輯修改(Compose)
選擇接口,右鍵選擇Compose
,臨時修改原有請求信息后,點擊【Execute】,對單個進口進行測試時會使用

8. 重新發送(Repeat)
此操作和Compose類似,都是重新發送請求,區別是Repeat不能修改請求信息,只是重復獲取響應數據,Repeat Advanced可設置重復次數、並發數及間隔時間

手機端數據截取
-
先在手機上安裝證書,否則無法獲取https請求,如下圖所示,在移動設備上安裝證書
-
手機上設置代理,根據Charles提示設置代理,然后瀏覽器訪問
chls.pro/ssl
,Charles會出現安全提示,允許之后才能訪問並成功下載證書,下載后將證書安裝至手機,提示“已安裝CA證書”表示安裝完成 -
安裝證書后Charles訪問控制中會顯示移動端IP,並且可以抓取到APP信息
至此Web端和移動端的請求都可以截取到啦,抓取移動端數據時,可以取消選擇Windows Porxy
,就不抓取Web端數據啦,更多使用方法請查看官方文檔