使用Charles抓包Android App数据
版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/
抓包环境准备
1. 下载安装charles
charles下载地址:https://www.charlesproxy.com/latest-release/download.do
2. SSL代理设置
3. http代理和socks代理配置
4. 设置Charles与Clash共存
如果开启了Clash,需要设置Charles与Clash共存
打开扩展代理设置
分别点击 Web Proxy、Seure Web Proxy 和 SOCKS Proxy 设置一下Clash的地址和端口
5. 共享热点
通过 ipconfg 或者打开【网络和Internet】找到电脑的 ip 地址
电脑开启共享热点,手机连接热点并设置代理
6. 安装证书
手机端访问 http://chls.pro/ssl 安装证书
下载并保存Charlles证书
Android 7.0 之后抓取HTTPS数据出现unknown 和证书无效的解决方案
1. 保存Charles证书
2. 计算证书的Hash值
下载安装 OpenSSL:https://slproweb.com/products/Win32OpenSSL.html
计算证书的Hash值
cd D:\App\OpenSSL-Win64\bin
./openssl x509 -inform PEM -subject_hash_old -in E:\charles.pem
比如这里得到的hash值为e4473cf9,把证书的文件名改为 e4473cf9.0
3. 安装证书到系统证书目录
把证书 push 到 /system/etc/security/cacerts(系统证书目录)
# 把证书 push 到 sdcard
adb push E:\e4473cf9.0 /sdcard/e4473cf9.0
# 获取超级管理员权限
adb root
# 进入adb shell
adb shell
# 挂载 /system 为可写
mount -o remount,rw /system
# 或
mount -o remount,rw /
# 把 sdcard 下面的证书移动到
/system/etc/security/cacerts
mv /sdcard/e4473cf9.0 /system/etc/security/cacerts/e4473cf9.0
# 进入 /system/etc/security/cacerts 目录 ls 一下检查是否有刚添加的证书文件
cd /system/etc/security/cacerts
ls
# 重启手机让证书生效
reboot
手机设置中打开【信任的凭据】【系统】可以看到已经有charles的证书了
4. 测试
再重新抓包 app 数据,可以看到已经能正常显示 https 数据了
参考: