在接口測試中,相信很多人都遇到過 Android 高版本(Android7.0 以上)系統無法抓取HTTPS包的問題。
由於在測試過程中對分析定位問題很不方便,所以咱們自己要想辦法解決這個問題
一、Android6.0 及以下系統可以抓包,而 Android7.0 及以上系統不能抓包;
原因:Android7.0+ 的版本新增了證書驗證,所以 App 內不再像原來一樣默認信任用戶的證書;
二、解決方案
1.讓安卓開發解決,重新打包,對於安卓開發同學來說無非是多加幾行代碼的事,但是如果要想抓取別人產品的HTTPS包,那這種方式就行不通了。
2.換一部Android6.0以下的手機/用系統6.0一下的模擬器安裝app,可以解決這個問題
3.Charles + VirtualXposed + JustTrustMe【主要講解第三種方案】
三、首先進入 Github 下載如下兩個 Page
- VirtualXposed:https://github.com/android-hacker/VirtualXposed
- JustTrustMe:https://github.com/Fuzion24/JustTrustMe


1.使用如下 adb 命令分別安裝兩個 pages
adb -s C7YVB20413007239 install D:\chomeDow\VirtualXposed_0.18.2.apk
adb -s C7YVB20413007239 install D:\chomeDow\JustTrustMe.apk

2.安裝完成進入 VirtualXposed apk 應用,點擊 6 個小點進入設置頁面

3.進入設置頁面,點擊模塊管理,勾選 JustTrustMe(我這里沒有找到它,可能是我這個版本不需要在手動選擇了,安裝之后自動識別到了)重啟之后我們重新進去設置頁面,添加我們需要抓包的應用即可,我這里選擇的釘釘做案例。

4.點擊添加應用,選擇需要抓包的軟件安裝:

5.配置 Charles 抓包
6.回到 VirtualXposed 上滑解鎖,打開我們之前安裝的企業微信,則發現 charles 已經成功抓取到釘釘的 HTTPS 的數據包
