使用charles嗅探https请求,你的API并不安全
安卓 root 手机
1、准备 root 过的 android 手机,关于自己手机root方法,自行查找解决。
adb root
adb disable-verity
2、并重新挂载分区,使系统根目录可写入
adb shell "mount -o rw,remount /system"
制作并上传证书

根据图示菜单选择 “Save Charles Root Certificate”,导出证书的后缀为 .pem
2、查看证书的 hash 值
$ openssl x509 -inform PEM -subject_hash_old -in ~/Downloads/charles-proxy-ssl-proxying-certificate.pem |head -1
26f93358
3、证书重命名为 {hash}.0
mv ~/Downloads/charles-proxy-ssl-proxying-certificate.pem 26f93358.0
4、上传证书到手机里的 /system/etc/security/cacerts 目录下
adb push 26f93358.0 /system/etc/security/cacerts
adb shell "chmod 664 /system/etc/security/cacerts/26f93358.0"
5、重启手机
charles 左侧选中域名,开启 SSL代理(Enable SSL Proxying)

最后说明
iOS 只需要手动安装证书,并授权即可,比 Android 要简单。
从 android 10 开始,针对 /system 分区多了一层保护,不能直接写入,暂时还没有找到解决方案,如果有知情的大牛欢迎给出解决方案。
更新 android 10 以后破解 /system 防护的方法
下载 Magisk App:
magiskmanager.com/downloading-magi...
点击 Install 会重新刷 bootloader(注意自担风险哦,手机变砖或丢失数据,自行承担)。

本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
如果客户端是手机app的话,那么api通常会做对称加密的
这是数抓包么 还是啥意思
@liuqiang_007 对,就是http(s) 代理中间人攻击,所以中间人需要在 系统里植入受信任的签名证书。
安卓植入证书这一步,如果是一般的APP,不需要adb,手机设置好代理之后访问
chls.pro/ssl下载并安装证书就可以了不过这个方式倒是新颖,不知道能不能对付阿里系的APP抓包API,他们似乎不接受用户自行安装的CA
@Tsukasa_Kanzaki 你说的这个早期安卓(大概android 6之前吧)可以,支持用户手动安装证书。后期安卓必须植入到系统里(
/system/etc/security/cacerts/)才可以。所以我这个方法是针对系统目录的植入,但android 10又增强防护了,目前真机上还无解。