簡介:
Charles其實是一款代理服務(wù)器,通過成為電腦或者瀏覽器的代理,然后截取請求和請求結(jié)果達到分析抓包的目的。該軟件是用Java寫的,能夠在Windows,Mac,Linux上使用,安裝Charles的時候要先裝好Java環(huán)境。
Charles是在 常用的網(wǎng)絡(luò)封包截取工具,在做移動開發(fā)時,我們?yōu)榱苏{(diào)試與服務(wù)器端的網(wǎng)絡(luò)通訊協(xié)議,常常需要截取網(wǎng)絡(luò)封包來分析。Charles 通過將自己設(shè)置成系統(tǒng)的網(wǎng)絡(luò)訪問代理服務(wù)器,使得所有的網(wǎng)絡(luò)訪問請求都通過它來完成,從而實現(xiàn)了網(wǎng)絡(luò)封包的截取和分析。除了在做移動開發(fā)中調(diào)試端口外,Charles 也可以用于分析第三方應(yīng)用的通訊協(xié)議。配合 Charles 的 SSL 功能,Charles 還可以分析HTTP協(xié)議。
Charles 是收費軟件,可以免費試用 30 天。試用期過后,未付費的用戶仍然可以繼續(xù)使用,但是每次使用時間不能超過 30 分鐘,并且啟動時將會有 10 秒種的延時。因此,該付費方案對廣大用戶還是相當(dāng)友好的,即使你長期不付費,也能使用完整的軟件功能。只是當(dāng)你需要長時間進行封包調(diào)試時,會因為 Charles 強制關(guān)閉而遇到影響。(可以自行網(wǎng)上查找破解版軟件)
Charles破解charles.jar(去這個網(wǎng)站生產(chǎn)jar包,替換原來的jar包就可以了)
Charles 主要的功能包括:
截取 Http 和 Https 網(wǎng)絡(luò)封包。
支持重發(fā)網(wǎng)絡(luò)請求,方便后端調(diào)試。
支持修改網(wǎng)絡(luò)請求參數(shù)。
支持網(wǎng)絡(luò)請求的截獲并動態(tài)修改。
支持模擬慢速網(wǎng)絡(luò)。
1. Charles安裝
前提先安裝配置好Java環(huán)境,官網(wǎng)下載安裝Charles:https://www.charlesproxy.com/download/
2. HTTP抓包
查看ip地址
方法一: 打開”運行”(快捷鍵:win+R鍵;或者在任務(wù)欄的”搜索”按鈕中查找并點擊”運行”),輸入“cmd”后進入命令行窗口,在命令行窗口中輸入”ipconfig”命令查看IP?

方法二: 在charles中查看 :Help -> Local IP Address

(2)Charles代理設(shè)置
接下來打開Charles的代理設(shè)置:Proxy->Proxy Settings,設(shè)置一下端口號,默認(rèn)的是8888,這個只要不和其他程序的沖突即可,并且勾選Enable transparent HTTP proxying。
(3)在手機設(shè)備、模擬器或者遠程瀏覽器上設(shè)置代理
抓取手機設(shè)備上的請求包(手機和電腦必須在同一個局域網(wǎng)內(nèi),并關(guān)閉電腦防火墻、其他代理或者翻墻軟件)
第一步:在手機wifi 上設(shè)置代理 -> 長按無線網(wǎng)絡(luò)-->修改網(wǎng)絡(luò)-->高級選項-->代理 手動-->手動輸入輸入IP、端口號
服務(wù)器IP:PC機器的IP(通過之前介紹的查看IP的方法)
端口號:8888(通過之前介紹的查看端口的方法

第二步:Charles彈出詢問“allow”或者“deny”,點擊“allow”按鈕允許;出現(xiàn)手機的HTTP請求列表

安裝證書
第三步:抓取https數(shù)據(jù)需要在手機上安裝證書,HTTPS的抓包需要在HTTP抓包基礎(chǔ)上再進行設(shè)置
如果我們需要在iOS或Android機器上截取 Https 協(xié)議的通訊內(nèi)容,還需要在手機上安裝相應(yīng)的證書。
設(shè)置前抓包HTTPS接口顯示unknown(圖左),設(shè)置后接口正常展示,如下圖右

Https請求出現(xiàn)亂碼
這時候你就需要安裝Charles的CA證書了
以下為在HTTP抓包基礎(chǔ)上進行HTTP抓包的進一步設(shè)置步驟:
Help -> SSL proxying -> Install charles root certificate on a Mobile Device or remote browser…
出現(xiàn)彈窗得到地址chls.pro/ssl
在手機自帶的系統(tǒng)瀏覽器輸入地址chls.pro/ssl,出現(xiàn)證書安裝頁面,點擊安裝,手機設(shè)置有密碼的輸入密碼進行安裝。安裝完證書后,就可以截取手機上的 Https 通訊內(nèi)容了。不過同樣需要注意,默認(rèn)情況下 Charles 并不做截取,你還需要在要截取的網(wǎng)絡(luò)請求上右擊,選擇 SSL proxy 菜單項。
注意2:iOS 10.3系統(tǒng),需要在設(shè)置→通用→關(guān)于本機→證書信任設(shè)置里面啟用完全信任Charles證書
ios安裝證書

Android安裝證書
再次進入手機設(shè)置,點擊“更多設(shè)置->系統(tǒng)安全->從存儲設(shè)備安裝->Download->.crt文件->確定”,在彈出窗,對證書命名為:Charles,點擊確定(首次安裝證書會讓輸入鎖屏密碼)。至此證書安裝成功!立即在電腦端對手機網(wǎng)絡(luò)進行抓包吧!
Charles設(shè)置Proxy代理
Proxy -> SSL Proxying Settings... 勾選Enable SSL Proxying,點擊Add,點擊Add,Host設(shè)置要抓取的https接口,??
Host : * (使用通配符表示檢測所有網(wǎng)絡(luò)請求;建議還是設(shè)置單個需要抓取的https host,盡量避免使用 * 通配符)
Port:443

比如想抓這個,Host填寫:https://api.weibo.cnPort填寫:443

?。。⊥瓿梢陨喜僮?,就完成Charles抓取HTTP(S)數(shù)據(jù)包的所有配置了。查看Charles,我們可以看到數(shù)據(jù)包的內(nèi)容了。
windows證書安裝也是一樣的
會出現(xiàn)證書安裝的信息,我這邊已經(jīng)安裝成功,第一次可能需要安裝
將證書安裝在“受信任的根證書頒發(fā)機構(gòu)”,這步很重要
最后提示導(dǎo)入成功,出現(xiàn)如上述證書信息顯示說明證書安裝成功,也可在證書路徑中查看證書安裝結(jié)果
3.勾選Proxy——Windows Proxy
4.選擇Proxy——SSL Proxy Setting,添加Location
Host和Port均設(shè)為*,
5、想要對瀏覽器請求進行抓包,還要對瀏覽器的證書進行設(shè)置,如下圖操作
出現(xiàn)如下提示信息,提示你去路徑 chls.pro/ssl 下載證書,訪問路徑可自動下載

6、導(dǎo)入瀏覽器證書,這里以Chrome瀏覽器為例,打開設(shè)置—高級—管理證書
7、按如下步驟進行選擇證書導(dǎo)入,記得第3步文件類型要選擇所有,不然匹配不到pem格式的文件
8、和工具端一樣,將證書存儲到“受信任的根證書頒發(fā)機構(gòu)”下,后面直接下一步即可