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

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。