說明
昨天晚上,朋友找我幫忙,說為了了解公司項目的業務,需要對微信小程序進行抓包,配置好久也不能用,讓我幫忙看看,后來一步步配置發現了好多坑,所以記錄一下,防止再踩
條件
安卓手機與蘋果手機的微信信任度不一樣,以下區分說明下
安卓手機
場景:
- 安卓 7.x 以下,任意微信版本均信任系統與用戶證書,只需要訪問charles下載證書地址,並安裝證書即可
- 安卓 7.x && 微信 7.0 以下版本,信任系統與用戶證書,僅需安裝證書
- 安卓 7.x && 微信 7.0 以上版本,只信任系統證書,需要root,添加證書到系統證書目錄中
使用root添加證書到系統目錄方式,使用adb推送
1.手機端掛上charles代理,並使用usb連接手機,使用文件傳輸模式,手機設置進入開發者模式,開啟adb調試並授權
2.手機端訪問<chls.pro/ssl>,下載證書到手機,將證書復制到電腦上
3.計算證書hash值,並重命名,格式為:<Certificate_Hash>.<Number>
openssl x509 -noout -subject_hash_old -in <Certificate_File>
舉例:

將輸出的 hash 值,添加.0, 組合成證書文件新名稱,修改證書文件名

.0的作用是防止hash沖突,如果沖突了,就將0遞增1位,依次類推。
4.使用 adb 推送到手機目錄中
adb root
adb remount
adb disable-verity
adb push <Renamed_Certificate_File> /system/etc/security/cacerts
例:
adb push b1bfb5ff.0 /system/etc/security/cacerts
不使用adb,通過RootExplorer復制改名后的證書到
/system/etc/security/cacerts,並修改文件權限644,即rw-r--r--,如果沒立即生效,重啟手機
5.抓包驗證
蘋果手機
- 安裝證書,直接可用。IOS 12需要設置 通用-關於本機-證書信任設置 中開啟證書
可行方案
- 使用安卓7以下版本系統,不要求微信版本
- 使用安卓7以上版本系統,安裝舊版本微信(7.0 以下)
- 使用安卓7以上版本系統,使用 root 權限將證書復制到系統證書目錄中
- 有蘋果手機的直接安裝證書使用
- 沒有蘋果手機,還不想折騰的,向公司測試申請蘋果手機 😄
