一. 介紹以及下載(windows)
Charles是一個HTTP代理/HTTP監視器/反向代理,使開發人員能夠檢視其機器和Internet之間所有HTTP和SSL/HTTPS流量,這包括請求,響應和HTTP標頭(包含cookies和快取資訊)。下載地址
Charles 主要功能
- 支援擷取HTTP與HTTPS的網路封包;
- 支援重發請求,方便後端除錯;
- 支援修改網路請求引數;
- 支援網路請求截獲並動態修改;
- 支援模擬弱網路環境測試。
So 允許我來講一個主要功能的第一點,也是除錯程式最基本最常用的一點(個人見解,勿噴); 接下來就開始看正文。
二. 安裝及破解
- 安裝還是比較簡單的 訪問官網 點選DOWNLOAD 一頓行雲流水操作,就安裝完成。
- 為什麼要破解呢,Charles是一個收費軟體,如果不破解的話開啟應用後一次最多使用30分鐘;當然這樣的結果不是我們想要的 so 就需要一些特殊手段;
2.1 破解的話 就是需要在網站上下載 charles.jar 檔案替換掉 安裝包內的此檔案 破解檔案下載地址
2.2 下載完成後在Charles安裝目錄下的lib目錄 找到之前的 Charles.jar 把新的覆蓋貼上進去 破解完成(未破解的Charles 只能使用半小時 半小時後程式閃退)
三. 下載證書
- 下載pc證書,開啟Charles 點選Help--SSL Proxying --Install CharlesRoot Certificate 點選後會出現一個下載證書的頁面
點選安裝證書--當前使用者--儲存到受信任的根證書頒發機構
安裝android證書 (小米手機為例) 電腦執行以下操作
3.1 電腦開啟 chls.pro/ssl 網址下載charles-proxy-ssl-proxying-certificate .pem
檔案;然後使用usb傳輸檔案方式下載到手機內;點選設定--WiFi--高階設定--安裝證書--找到剛才下載的證書進行安裝;
3.2 這是題外話,為什麼檢視blog有的文章說,手機瀏覽器訪問 chls.pro/ssl 也能下載證書,我們卻用pc下載再拉入手機呢;原因就是小米手機網站下載的是檔案字尾為.crt的證書,在安裝的時候小米識別不了,無法安裝;在pc下載的是.pem字尾。
- 注意點:1. Android機型在7.0及以上版本,不再信任基於使用者的CA證書,剛好我們們下載的這個證書就是基於使用者的CA證書,so 關於小程式或者H5頁面無法抓取請求,當然也是有解決的辦法,下面就不贅述了 給個地址有興趣可自行檢視;
4.1 這第一種方式需要公司Android大佬的配合,就是要Android在配置檔案里加一個類似與CA集,信任使用者安裝的證書;
4.2 第二種的解決方案思路則是先把證書下載到手機內部,然後將手機許可權(root),強制將使用者證書轉為系統證書;
四. 設定代理埠以及過濾請求
- 回到pc 設定Charles代理伺服器的埠 點選proxy -- proxySetting--設定埠 並啟動
- 啟用http代理,設定可以抓取的請求;(這裡沒有過濾使用了萬用字元;稍後說一個簡單的過濾方法。)
五. 開始抓包
- 首先保證Android手機與PC同處於一個區域網之下(一個WiFi) 然後PC執行cmd命令
ipconfig
檢視本機ip
- 手機連結WiFi設定代理 ip就是與PC相同的ip 埠就是剛剛我們們設定的埠;進入WiFi檢視詳情,選擇代理改為手動,輸入上圖的ip,埠就是剛才我們們設定的埠8888;
- 看效果(下圖中包含一次性過濾請求的方法,比較簡單方便)
3.1 使用方法:如果以上配置都已經完成,就可以開啟Charles 一邊“玩手機”一邊工作了;Charles會記錄下來你在手機做的操作(每個網路請求);然後根據相應的資訊分析或者除錯;