Charles

概述

参考:

image.png

image.png

在手机、pad 上配置 WLAN 代理,访问 chls.pro/ssl 下载证书。

IOS 抓包

IOS 安装证书

为无线连接配置手动代理

IOS 访问 chls.pro/ssl 下载证书并安装

设置 —— 通用 —— 关于本机 —— 证书信任设置,开启信任证书

安卓抓包

bitxeno’s notes,通过 WSA 抓取 android 的 https 网络请求包

安卓安装 Charles 证书无效

证书安装成功,但是抓到的包都是 unknow,可能的原因:

  • Android7.0 之后默认不信任用户级别 CA 证书
  • 此时开启抓包后,很多 APP 都是无网络的情况;但是 chrome 打开网页是可以抓到 https 的包
  • 需要想办法安装在系统级别下的 CA 证书
  • 可能的方法
    • 平行空间
    • 获取系统 Root 权限

HttpCanary 根证书安装(MIUI13 Android 12可用)

  • 还是没法抓集换社的包,微信小程序的包也抓不到
  • 主要是使用了 SSL_TLS Pinning 的 app 对非自身认可的证书排斥,但是为啥 IOS 可以,安卓不行?

安装证书

打开手机设置,搜索:加密与凭据 => 安装证书 => 证书

简书,Android 安装信赖证书 (有效)

方法一,将证书手动拷贝到 /system/etc/security/cacerts/ 目录下

  • 使用 openssl x509 -inform DER -subject_hash_old -in charles.cer -noout 为 Charles 的 CA 证书生成 hash 值。
    • 注意,要用 -subject_hash_old 选项,而不是 -subject_hash 这样才会得到 openssl 0.9 兼容的 hash 值
    • 假如 hash 值为: 17b11348
  • cat charles.cer > 17b11348.0 将 Charles 证书写入到 17b11348.0 文件中,并拷贝到移动设备中
  • adb shell 进入移动设备 Shell,并使用 su 切换到 root
  • mount -o remount,rw /system
  • cp 17b11348.0 /system/etc/security/cacerts/,注意保证文件权限为 644
  • mount -o remount,ro /system 恢复挂载
  • reboot 重启设备

TODO: 这里可能会有问题,执行 mount -o remount,rw /system 可能会报错: mount: '/system' not in /proc/mounts,/system 并没有自己的分区且独立挂载。暂时不知道如何解决

方法二,使用 Magisk

微信小程序抓包

到底怎么抓呢?~

知乎上的一篇文章中说删除 PC 小程序缓存在 2022 年 9 月 5 号之后也不管用了

给微信降级后即可在 PC 上抓包:https://blog.csdn.net/weixin_46552558/article/details/124037807

小程序内嵌的 h5 调用如何抓到?


最后修改 January 20, 2024: change notes name, bpf, kernel (01f0283c)