天天看點

Charles 手機抓包

請求抓包對于程式員調試代碼必不可少,Charles是一個用于抓包的好工具(也可以使用Fiddler),Charles抓包是通過中間人代理實作,在用戶端和服務端通信時,Charles會截取用戶端發送給服務端的請求,然後僞裝成用戶端與服務端進行通信,服務端傳回資料時,Charles會截取資料僞裝成服務端将資料發送給用戶端。

Charles的安裝比較簡單,根據應用安裝過程的提示,安裝即可,不再贅述。主要講一下Charles手機抓包的配置。

首先保證需要抓包的手機和安裝Charles的電腦在同一個區域網路之中(比如,使用同一個WiFi)。

打開Charles,點選<code>Proxy-Proxy Settings</code>,設定端口,Charles會占用該端口啟動一個服務。勾選<code>Support HTTP/2</code>

Charles 手機抓包

配置手機代理,點開手機連接配接wifi的進階選項,代理設定為手動,填寫IP和端口,端口即為上一步驟中設定的端口,如8888. IP位址為安裝Charles電腦的位址,可通過<code>ipconfig</code>指令查詢。

Charles 手機抓包
Charles 手機抓包

給電腦安裝Charles證書,否則打開Charles後電腦浏覽器不能正常上網。(原因是Charles僞裝成中間人,浏覽器不信任Charles的證書,報錯“您的連接配接不是私密連接配接”)

打開Charles,<code>Help-SSL Proxying-Install Charles Root Certificate</code>

具體安裝過程可參考Charles根證書安裝

手機安裝Charles根證書

如果需要抓包HTTPS請求并解密,需要在手機上安裝Charles根證書,以讓手機信任Charles。

打開手機浏覽器,輸入<code>http://chls.pro/ssl</code>下載下傳charles證書。

打開手機設定-安全與隐私-加密與憑據-從儲存設備安裝,選擇下載下傳的證書檔案安裝即可。

一般按照上述小節配置就可以實作對HTTPS請求的抓包和資料解密。但是Android 7版本及以上的系統,不再信任使用者級的證書,隻信任系統級的證書。即便是按照上述操作安裝了Charles的根證書,發現HTTPS請求也無法正常解析,會有<code>Unknown</code>報錯,Charles的Note會提示<code>You may need to configure your browser or application to trust the Ch</code>.

此類場景,需要給Android7及以上的手機安裝系統級證書,來實作HTTPS的抓包。

需要抓包的手機已完成Root。

需要安裝好Openssl工具(可以在Linux伺服器上完成,或者是通過win10的WSL來操作)

adb工具(下載下傳位址)

将通過<code>http://chls.pro/ssl</code>下載下傳的證書(一般字尾為<code>.pem</code>)上傳到安裝有<code>openssl</code>的機器上。

執行<code>openssl</code>指令重命名證書名稱

該指令會輸出一個簽名,找到其中的hash值進行複制。如下文中的<code>2598f6a3</code>。

重命名證書檔案。

使用Adb工具将字尾為0的證書上傳到手機<code>/system/etc/security/cacerts/</code>目錄下。

通過資料線将手機連接配接到電腦上,并打開開發者調試。

将上述字尾為0的證書檔案放在<code>adb</code>工具的安裝目錄下,打開windows終端(windows+R 輸入 cmd)

執行

如果執行<code>cp</code>指令時出現<code>Read-only file system</code>錯誤,需要将<code>system</code>挂載為可讀寫。執行指令:

如果執行該指令報錯<code>mount -o rw,remount /system /system’ not in /proc/mounts</code>,執行下一條指令,簡單粗暴解決。

然後繼續執行<code>cp</code>指令

重新開機手機,即可對HTTPS完成資料抓包和解密。

(10條消息) 給Android7及以上的手機安裝系統級證書,實作Fiddler或者其他程式的HTTPS的抓包_一碗單炒飯的專欄-CSDN部落格_安裝系統證書

安卓7.0以上手機寫入安全證書 - 閱曆即魅力 - 部落格園 (cnblogs.com)

(10條消息) mount -o rw,remount /system /system’ not in /proc/mounts_csdn13034551515的部落格-CSDN部落格

(10條消息) 使用Charles代理工具導緻電腦無法正常通路網站(您的連接配接不是私密連接配接)_mengzhiyuan93的部落格-CSDN部落格_charles 您的連接配接不是私密連接配接