一. 簡(jiǎn)介及安裝
一、charles的使用
1.1 ?charles的說(shuō)明
Charles其實(shí)是一款代理服務(wù)器,通過(guò)過(guò)將自己設(shè)置成系統(tǒng)(電腦或者瀏覽器)的網(wǎng)絡(luò)訪問(wèn)代理服務(wù)器,然后截取請(qǐng)求和請(qǐng)求結(jié)果達(dá)到分析抓包的目的。該軟件是用Java寫的,能夠在Windows,Mac,Linux上使用。安裝Charles的時(shí)候要先裝好Java環(huán)境。
Charles的主要功能:
(1)截取Http 和 Https 網(wǎng)絡(luò)封包。
(2)支持重發(fā)網(wǎng)絡(luò)請(qǐng)求,方便后端調(diào)試。
(3)支持修改網(wǎng)絡(luò)請(qǐng)求參數(shù)。
(4)支持網(wǎng)絡(luò)請(qǐng)求的截獲并動(dòng)態(tài)修改。
(5)支持模擬慢速網(wǎng)絡(luò)。
1. 下載
Charles下載地址
地址:https://www.charlesproxy.com/latest-release/download.do

2. 安裝
一路按下next即可安裝(保證電腦里沒(méi)有其他charles即可)

3. 破解
Charles第一種破解方法:
打開漢化補(bǔ)丁 選擇“中文破解版”,按下patch即可打開漢化補(bǔ)丁 選擇“中文破解版”,按下patch即可

Charles第二種破解方法:
破解地址:https://www.zzzmode.com/mytools/charles/
生成jar文件后,放到charles安裝目錄的lib目錄下
此時(shí),重啟charles,查看已經(jīng)破解,如下圖:

設(shè)置charles, Proxy->Proxy setting,就可以抓取http協(xié)議了(默認(rèn)不用更改)

4. 進(jìn)入界面

注意:安裝好charles后,要先進(jìn)行漢化破解再打開,如果先打開了軟件,在漢化的話就會(huì)無(wú)效,只能重新安裝再進(jìn)行以上步驟。
二. 連接
1.PC抓包
由于charles會(huì)自動(dòng)配置瀏覽器和工具的代理設(shè)置,所以說(shuō)打開工具直接就已經(jīng)是抓包狀態(tài)了。直接打開網(wǎng)頁(yè)就可以了。
?注意:
(1)Charles支持抓去http、https協(xié)議的請(qǐng)求,不支持socket。
(網(wǎng)絡(luò)上的兩個(gè)程序通過(guò)一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換,這個(gè)連接的一端稱為一個(gè)socket)
(2)防火墻關(guān)掉
點(diǎn)擊上方的代理—windows代理

電腦charles客戶端下載SSL證書
幫助—SSL代理—安裝charles證書

?選擇當(dāng)前用戶

將所有的證書都放入下列存儲(chǔ)—受信任的根證書頒發(fā)機(jī)構(gòu)—下一步—完成

2.手機(jī)端抓包
使手機(jī)和電腦在一個(gè)局域網(wǎng)內(nèi),不一定非要是一個(gè)ip段,只要是同一個(gè)路由器下就可以了。
(1)首先利用cmd -config命令查看自己電腦的ip地址

配置代理服務(wù)器
菜單欄上選擇“代理—代理設(shè)置,
填入代理端口xxxx
勾選啟用透明HTTP代理

?查看自己本機(jī)IP

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

配置完成,會(huì)看到一個(gè)charles與手機(jī)端的連接提示彈窗,選擇allo即可。

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

b. 手機(jī)端證書下載
在設(shè)備上打開這個(gè)網(wǎng)址?http://www.charlesproxy.com/getssl?安裝?Charles?SSL?證書。
注意,同一個(gè)手機(jī)對(duì)應(yīng)不同電腦上的Charles都要分別下載證書進(jìn)行認(rèn)證,因?yàn)槭謾C(jī)的證書是和電腦端的Charles一一配對(duì)的。
PS:ios手機(jī),需要信任該證書
C.相關(guān)配置
選擇Proxy | Proxy Settings,彈出proxy設(shè)置選項(xiàng)卡,勾選Enable SSL Proxying,在Location部份選擇add,按如下圖添加,抓取任意站點(diǎn)、443端口的數(shù)據(jù)。

3. 抓取的包全部出現(xiàn)unknow的解決方法
代理-SSL代理-啟用SSL代理-添加 如圖主機(jī)和端口都添加*。

繼續(xù):代理-SSL代理-啟用SSL代理-添加 如圖主機(jī)添加*,端口添加443.

如圖所示即可完成 解決unknow問(wèn)題。
如果個(gè)別情況出現(xiàn)unknow,可能是本身抓包軟件存在個(gè)別漏抓問(wèn)題??梢院雎?/p>
三. 功能

從左到右分別為:
(1)清除當(dāng)前會(huì)話
(2)停止記錄
(3)開始限流/停止限流
(4)開始斷點(diǎn)/停止斷點(diǎn)
(5)根據(jù)所寫內(nèi)容撰寫新請(qǐng)求
(6)重發(fā)選定請(qǐng)求
(7)工具
(8)設(shè)置
1. 顯示模式:有結(jié)構(gòu)和序列兩種模式
(1)結(jié)構(gòu)模式:可以很清晰的看到請(qǐng)求的數(shù)據(jù)結(jié)構(gòu),而且是以域名劃分請(qǐng)求信息的,可以很清晰的去分析和處理數(shù)據(jù)。

(2)序列:可以看到全部請(qǐng)求,這里的結(jié)果以數(shù)據(jù)請(qǐng)求的順序來(lái)顯示,可以根據(jù)時(shí)間、大小等自由排序

2. 模擬網(wǎng)速功能
在線上環(huán)境通常有些因?yàn)榫W(wǎng)速慢導(dǎo)致的bug,在本機(jī)無(wú)法重現(xiàn),那時(shí)候就很抓瞎,模擬網(wǎng)速功能支持對(duì)帶寬、利用率、往返延遲、字節(jié)進(jìn)行配置,并且支持3G/4G或者其他網(wǎng)絡(luò)模式。
上方工具欄的代理—限流設(shè)置—啟用限流

3. 過(guò)濾設(shè)置
方法一:軟件下方的過(guò)濾可以進(jìn)行簡(jiǎn)單的過(guò)濾,在主界面的中部的Filter欄中填入需要過(guò)濾出來(lái)的關(guān)鍵字。例如我們的服務(wù)器的地址是:www.baidu.com,那么只需要在 Filter 欄中填入www.baidu.com即可。

方法二:上方工具欄的代理—記錄設(shè)置—包括—添加
可以對(duì)網(wǎng)絡(luò)請(qǐng)求進(jìn)行過(guò)濾。
然后填入需要監(jiān)控的協(xié)議,主機(jī)地址,端口號(hào)等。這樣就可以只截取目標(biāo)網(wǎng)站的封包了。

通常情況下,我們使用方法一做一些臨時(shí)性的封包過(guò)濾,使用方法二做一些經(jīng)常性的封包過(guò)濾。
方法三:在想過(guò)濾的網(wǎng)絡(luò)請(qǐng)求上右擊,選擇“Focus”,之后在 Filter 一欄勾選上 Focussed 一項(xiàng),如下圖所示:
這種方式可以臨時(shí)性的,快速地過(guò)濾出一些沒(méi)有通過(guò)關(guān)鍵字的一類網(wǎng)絡(luò)請(qǐng)求。
