安卓抓包的配置

抓包在测试过程中跟踪分析定位很有用, 但是在安卓7.0后,由于系统安全策略修改, 系统默认只信任系统证书, 以前可方便安装的用户证书就失效了, 造成现在无法对HTTPS抓包.

解决方案

  1. 找一个版本低于7.0的安装设备或者模拟器, 但是鉴于设备并不是想有就有, 而且随着安卓的迭代, 淘汰不再支持是迟早的事.
  2. JustTruestMe + VirtualXposed
  3. 在Root权限下将证书写入系统

JustTruestMe 是一个禁用绕过 SSL 证书的 Xposed 模块 , 它将常见的网络请求框架 API 进行了 hook , 从而达到绕过证书检查的效果

而 VirtualXposed 是在非ROOT环境下实现Xposed的替代方案. 有了它就不用 Root 权限也能使用 Xposed 的模块了

ROOT权限下安装证书

我有ROOT权限, 所以这种方案是最省事, 一劳永逸的. 步骤如下:

导出你的抓包软件的证书

openssl x509 -subject_hash_old -in "证书文件名"

会输出字符, 第一行为 证书的哈希值.

将这个证书重命名  哈希值+".0"
mv charles-ssl-proxying-certificate.pem 83c5abb0.0

然后将重名后的文件复制到/system/etc/security/cacerts目录

# 这里使用adb
adb push 83c5abb0.0 /sdcard/

# 进去shell 切换到root
adb shell
su
# 挂载权限
mount -o rw,remount /
# 移动到根证书目录
mv /sdcard/83c5abb0.0 /system/etc/security/cacerts
chmod 777 /system/etc/security/cacerts/83c5abb0.0

mount -o ro,remount /

最后重启手机, 不出意外应该可以正常抓取SSL的请求