介绍
Android从7.0开始,系统不再信任用户添加到系统的CA证书,如果应用的targetSdkVersion>=24,则只有系统证书才会被信任。也就是说即使安装了用户CA证书,在Android7.0以上的机器上,targetSdkVersion>=24的应用的Https包也无法正常抓到。
本文将讲解实现使用夜神模拟器12的版本,通过开启root权限之后,直接将证书导入到系统证书目录下,从而实现抓包。
准备
1、安装夜神模拟器12,并确认开启root权限,安装好MT管理器
2、安装Charles并自行配置好相应设置,本文不过多赘述
流程
1、导出证书
打开Charles,依次点击Help、SSL Proxying、Save Charles Root Certificate导出证书,命名为charles.pem
2、证书导入模拟器
将导出的证书文件拖拽到模拟器窗口主界面中,文件会放在安卓共享路径中,打开文件助手(ctrl+4)即可确认
如果无法拖拽成功,可以打开电脑共享路径,直接将证书文件放入其中
3、安装证书
打开安卓设置,在输入框中输入安装证书
这里我们选择加密与凭证中的安装证书
选择安装CA证书,找到刚才存放证书文件的路径进行安装即可
安装完成后可以在信任的凭据中,选择用户进行查看
4、移动到系统证书目录
这一步需要提前安装MT管理器并授予权限,在主界面搜索安装即可,不再赘述
前面我们安装的用户证书储存在/data/misc/user/0/cacerts-added,文件以.0作为结尾,而系统证书目录的路径在/system/etc/security/cacerts,因此接下来只需要将该.0文件移动到系统目录下就大功告成了。
在MT管理器中,左右两边分别打开用户证书目录和系统证书目录,对要导入的文件进行长按,触发弹窗,选择移动即可
移动过去后如果权限不是644的话,请自行更改,确保能正常访问
5、设置代理进行抓包
最后一步,我们回到设置搜索wifi或者wlan
如果wifi已连接请先长按进行断开连接,随后依次点击进行修改、高级选项
将代理设置为手动,代理主机名设置为本机的ipv4地址,代理端口是8888,设置完成后保存
最后模拟器上打开百度进行测试,如图所示响应200,成功抓到https下的数据
本文到此结束,感谢大家观看。