android 7.0+抓包无限制
前提
手机已经root,手机root可参考:
- 小米手机升级开发版
- 刷面具
安装证书
- 保存charles pem证书到桌面
Charles -> Help -> SSL Proxying -> Save Charles Root Certificate...
如保存文件为charles.pem - 生成Android要求的证书格式
由于Android系统级别的证书文件名是以0为后缀,以证书的hash值为名字,所以,我们需要根据证书生成对应的hash值,执行如下命令
$ openssl x509 -inform PEM -subject_hash_old -in charles.pem
35880da4
$ mv charles.pem 35880da4.0
$ adb push 35880da4.0 /sdcard
35880da4替换为你生成的hash值
- 移动证书到系统目录
$ adb shell
$ su
# whoami
root
# mkdir -m 700 /sdcard/ca
# cp /system/etc/security/cacerts/* /sdcard/ca
# mount -t tmpfs tmpfs /system/etc/security/cacerts
# mv /sdcard/ca/* /system/etc/security/cacerts/
# mv /sdcard/35880da4.0 /system/etc/security/cacerts/
# chown root:root /system/etc/security/cacerts/*
# chmod 644 /system/etc/security/cacerts/*
# chcon u:object_r:system_file:s0 /system/etc/security/cacerts/*
效果
- 查看系统证书列表,设置-安全-更多安全设置-加密与凭据-信任的凭据
这样就可以抓到大部分app的包了
手机重启后丢失
更高效的方式
- 由于以上的方式手机重启后丢失,还可以通过安装magisk模块MagiskTrustUserCerts
- 启动完模块后重启,正常安装证书后重启,证书就会到系统信任证书列表中了
其他
- 安装TrustMeAlready 或 SSLUnpinnning
- 对于使用了Okhttp且被混淆的app,JustTrustMe将会失去部分效果,因为JustTrustMe将找不到okhttp的相关类,对于这类将超出本文范围,可进一步参看其他文章