前言
一、charles的抓包操作
1.1 charles與手機/電腦的連接
1.1.1 charles與手機端的連接
使手機和電腦在一個局域網內,不一定非要是一個ip段,只要是同一個路由器下就可以了。
(1)首先利用cmd -config命令查看自己電腦的ip地址

(2)然后在手機端的wifi代理設置那里去進行相關的配置設置。
這里的代理服務器地址填寫為電腦的ip地址,然后端口這里寫8888(這個是charles的默認設置),如果自己修改了就寫成自己所修改的端口就可以了。

配置完成,會看到一個charles與手機端的連接提示彈窗,選擇allo即可。

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

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

PS:ios手機,需要信任該證書
C.相關配置
選擇Proxy | Proxy Settings,彈出proxy設置選項卡,勾選Enable SSL Proxying,在Location部份選擇add,按如下圖添加,抓取任意站點、任意端口的數據。
1.1.2 charles與電腦端的連接
由於charles會自動配置瀏覽器和工具的代理設置,所以說打開工具直接就已經是抓包狀態了。直接打開網頁就可以了。
注意:
(1)Charles支持抓去http、https協議的請求,不支持socket。
(網絡上的兩個程序通過一個雙向的通信連接實現數據的交換,這個連接的一端稱為一個socket)
(2)防火牆關掉
1.1.3 過濾請求
通常情況下,我們需要對網絡請求進行過濾,只監控向指定目錄服務器上發送的請求。對於這種需求,以下幾種辦法:
方法一:在主界面的中部的Filter欄中填入需要過濾出來的關鍵字。例如我們的服務器的地址是:www.baidu.com,那么只需要在 Filter 欄中填入www.baidu.com即可。

方法二:在Charles的菜單欄選擇 “Proxy”->”Recording Settings”,然后選擇 Include 欄,選擇添加一個項目,然后填入需要監控的協議,主機地址,端口號。這樣就可以只截取目標網站的封包了。如下圖所示:

通常情況下,我們使用方法一做一些臨時性的封包過濾,使用方法二做一些經常性的封包過濾。
方法三:在想過濾的網絡請求上右擊,選擇“Focus”,之后在 Filter 一欄勾選上 Focussed 一項,如下圖所示:
這種方式可以臨時性的,快速地過濾出一些沒有通過關鍵字的一類網絡請求。
