安卓7.1以上模拟器抓取HTTPS数据

由于安卓7.1以上无法抓取到https的包,主要原因是证书问题,证书需要安装到系统目录下而不是用户目录下,这样才能抓取https包,所以使用这种方法可以成功抓取到https的包。大家可以试试

工具准备

  1. 雷电模拟器(或者其他类似模拟器,如腾讯模拟器、夜神模拟器等)
  2. Charles 抓包工具点击下载
  3. DG 硬盘分区工具点击下载

步骤一:下载并安装Charles程序

  1. 下载Charles抓包工具。
  2. 解压并安装Charles程序。
  3. 启动Charles程序。

步骤二:配置Charles抓包设置

  1. 在Charles程序中,依次点击 代理 -> SSL代理设置
  2. 在弹出的窗口中,点击 启用SSL代理 复选框。
  3. 点击 添加 按钮,输入 *:443,确保443端口的流量被代理。

步骤三:安装Charles根证书

  1. 在Charles程序中,点击 帮助 -> SSL代理 -> 安装Charles根证书
  2. 在证书安装向导中,选择安装到 受信任的根证书颁发机构

步骤四:配置安卓模拟器网络代理

  1. 打开雷电模拟器。
  2. 进入模拟器的 Wi-Fi设置,选择当前连接的Wi-Fi,点击 修改网络
  3. 勾选 显示高级选项,设置 代理手动
  4. 代理地址填写你电脑的IP地址,端口填写Charles监听的端口(默认为8888)。

步骤五:在安卓模拟器中安装Charles证书

  1. 打开模拟器中的浏览器,访问 http://chls.pro/ssl
  2. 自动下载Charles证书,点击安装证书。
  3. 系统会要求设置密码,设置密码后完成证书安装。

步骤六:获取并复制证书文件

  1. 在模拟器中,使用文件管理器浏览到 /data/misc/user/0/cacerts-added 目录。
  2. 找到一个以hash值命名的文件,这是刚刚安装的证书文件。
  3. 将此文件复制到电脑桌面。

步骤七:将证书文件复制到系统目录

  1. 打开DG硬盘分区工具。
  2. 使用DG工具打开模拟器的 system.vmdk 虚拟磁盘。
  3. 浏览到 /system/etc/security/cacerts/ 目录。
  4. 将刚刚复制到桌面的hash文件(证书)复制到此目录。
  5. 保存并关闭虚拟磁盘文件。

完成

经过以上步骤设置后,你现在可以在Charles中抓取雷电模拟器中发出的HTTPS请求数据了。以下是一些优化建议:

  • 确保模拟器的网络设置正确,否则可能无法与Charles通信。
  • 确保Charles证书已正确安装,并被系统识别为受信任的根证书。
  • 遇到问题时,可以重新检查每一步骤是否正确执行。

这样设置完毕后,你就能成功抓取到安卓模拟器的HTTPS流量包。