Charles 是一个比较好用的抓包工具,在实际的工作中,发现一旦模拟器配置了 charles 所在的机器代理,有些app就无法访问网络,这个问题困扰了好几天,最后在书中找到 charles 配合 postern 抓包。
Charles 地址:https://www.charlesproxy.com/download/
postern地址:http://www.xsssql.com/wp-content/uploads/2022/12/2022122807462925.zip
具体做法
- 导出charles证书
- 安装 charles 证书
- 配置 postern
导出 charles 证书
进入 Charles ,点击proxy>Proxy Settings
导出证书:Help>SSL Proxying>save charles root certificate
导出的证书名称为 cacert.pem
进入证书目录,执行命令
openssl x509 -inform PEM -subject_hash_old -in cacert.pem
# ea22023f 是生成的,最后再把cacert.pem 重命名为 ea22023f.0
rn charles.pem ea22023f.0
连接夜神模拟器
adb devices
adb connect 127.0.0.1:62001
安装charles 证书
执行命令如下
adb root
adb remount
adb push ea22023f.0 /sdcard/
adb shell
su
mount -o rw,remount /system
mv /sdcard/ea22023f.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/ea22023f.0
此时证书就安装好了,这样是直接把证书安装到了系统证书
配置 postern
下载加压后把 apk 文件拖到模拟器安装,打开 postern
配置代理
配置规则
开启或关闭 VPN
开启VPN,在模拟器上访问外网,charles 就能抓到数据了