一. 介紹以及下載(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會記錄下來你在手機做的操作(每個網絡請求);然后根據相應的信息分析或者調試;