使用Charles抓包Android App数据

发布于:2024-10-12 ⋅ 阅读:(10) ⋅ 点赞:(0)

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/

抓包环境准备

1. 下载安装charles

charles下载地址:https://www.charlesproxy.com/latest-release/download.do
image.png

2. SSL代理设置

截图.png

截图.png

3. http代理和socks代理配置

截图.png

4. 设置Charles与Clash共存

如果开启了Clash,需要设置Charles与Clash共存

打开扩展代理设置
image.png

分别点击 Web Proxy、Seure Web Proxy 和 SOCKS Proxy 设置一下Clash的地址和端口
截图.png

5. 共享热点

通过 ipconfg 或者打开【网络和Internet】找到电脑的 ip 地址
image.png

电脑开启共享热点,手机连接热点并设置代理
screenshot.png

6. 安装证书

手机端访问 http://chls.pro/ssl 安装证书
截图.png

截图.png

下载并保存Charlles证书
image.png

Android 7.0 之后抓取HTTPS数据出现unknown 和证书无效的解决方案

image.png

1. 保存Charles证书

截图.png
image.png

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
image.png

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的证书了
1727085677011.jpg

4. 测试

再重新抓包 app 数据,可以看到已经能正常显示 https 数据了
image.png

参考: