Android7以上https抓包

1. 问题描述

1.1 运行环境

Android7以上https抓包

1.2 问题描述

  • virtualXposed 不一定支持Android模拟器
  • 无法抓包 https 请求

1.3 问题原因

Android7 以后,系统分了系统证书和用户证书,用户安装的fiddler属于用户证书,抓https的请求需要系统证书才行

1.4 抓包工具

fiddler

2. 解决步骤

主要就是把 fiddler 从 用户证书 转到 系统证书

2.1 解决需要的环境(自行下载、安装和配置)

  • cer/pem:抓包证书
  • adb:用来上传操作手机
  • openssl:用来编译证书

2.2 首先计算 原证书的 hash值

# .cer格式证书
openssl x509 -inform DER -subject_hash_old -in <证书文件.cer>
# .pem格式证书
openssl x509 -inform PEM -subject_hash_old -in  <证书文件.pem>

Android7以上https抓包

2.3 新建新证书文件,操作见 2.2 步骤截图

2.4 重新编译原证书 成一个 新证书

# cer格式
openssl x509 -inform DER -text -in xxx.cer 269953fb.0
# pem格式
openssl x509 -inform PEM -text -in xxx.pem 269953fb.0

Android7以上https抓包

Android7以上https抓包

2.5 上传 新证书,使新证书为 系统证书

adb push ‪C:\Users\23983\Desktop\269953fb.0 /sdcard

# /system 目录只读,我们需要赋予读写权限,然后重新挂载
adb shell
mount -o remount,rw /system

# 把新证书放到 /system/etc/security/cacerts/ 目录下
cp /sdcard/269953fb.0 /system/etc/securtiy/cacerts/

# 给新证书 重新授权
chmod 644 /system/etc/security/cacerts/269953fb.0

# 重启
reboot

3. 之后其他的就是正常的抓包设置

例如:设置抓包代理等等
Android7以上https抓包

上一篇:OpenSSL的证书格式转换


下一篇:浅谈语音技术(ASR/TTS/质检/声纹)