banner
南村一童

南村一童

南村一童

Mac 使用Android Studio 模擬器抓https

最近在測試 apk 時發現使用常規的手段:導出 burp 證書 -> 安裝證書 ->wifi 設置代理的手段無法抓到 https 的流量(用 proxifier,讓安卓模擬器走 burp 代理也是可以的,但是不想搞),通過搜索引擎得知 Android7.0 及之後,系統默認只信任系統證書,不再信任用戶自己安裝的證書,於是在多次嘗試使用各類模擬器抓 apk 中 https 的報文失敗後,還是選擇了 Android Studio。將證書安裝到系統證書中

準備 burp 證書#

1、導出 burp 證書
2、使用 openssl 更改證書格式,先將 burp 證書的 der 格式轉成 pem, 再獲取證書的 hash

openssl x509 -inform DER -in burp.der -out burp.pem 
openssl x509 -inform PEM -subject_hash_old -in burp.pem

image
將文件名修改為獲取到的 hash.0

mv burp.pem 9a5ba575.0
準備模擬器#

1、打開 Andriod Studio,新建一個模擬器,詳情見圖。
image.png

系統鏡像可以按需選擇
image.png

填入模擬器的名字,設置模擬器的存儲大小,給多點,免得安裝空間不夠用。
image.png

image.png

2、使用 emulator 命令啟動模擬器,命令的默認位置在 / Users/{{用戶名}}/Library/Android/sdk/emulator, 添加 - no-snapshot-load 參數保存模擬器狀態,否則重啟模擬器之後需要重新執行 adb root、remount 命令然後修改證書權限。

查看所有模擬器   emulator -list-avds
然後啟動模擬器   emulator @Resizable_API_33 -writable-system -no-snapshot-load

image.png

image.png

上傳證書#

1、使用 adb 命令重新掛載分區,使 system 可讀寫

adb root    進入root權限
adb disable-verity    關閉分區檢測功能
adb reboot    重啟設備
adb remount    重新掛載分區,使system分區可讀可寫

image.png
image.png
image.png

2、上傳證書

adb push 9a5ba575.0 /sdcard    上傳證書至/sdcard目錄
adb shell    進入系統,此時可以使用whoami查看是否為root用戶
cp /sdcard/9a5ba575.0 /system/etc/security/cacerts/    進入系統後將證書複製到系統證書目錄下
chmod 644 /system/etc/security/cacerts/9a5ba575.0    修改證書權限

image.png

3、查看證書是否安裝成功
操作模擬器界面,進入設置 (setting) --> 安全 (security) --> 更多安全設置 (more security settings) --> 加密與憑據 (encryption & credentials) --> 信任的憑據 (trusted credentials)
image.png

配置 WIFI 代理#

image.png
image.png

成功抓包
image.png

參考文章#

https://www.freebuf.com/articles/system/347725.html
https://developer.android.com/studio/run/emulator-commandline?hl=zh-cn#startup-options
https://developer.android.com/studio/command-line/adb?hl=zh-cn
https://juejin.cn/post/6844903645289398280
https://android.stackexchange.com/questions/232234/why-adb-remount-retruns-remount-failed-on-android-emulator

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。