Android7.0后证书不信任,要用到两个工具,一个是openssl,一个MT管埋器(获得安卓系统的超级管理员权限,有些用adb命令推不进夜神模拟器里)
工具一:openssl
下载openssl地址:https://slproweb.com/products/Win32OpenSSL.html
Windows配置OpenSSL环境变量步骤:
我的电脑--属性--高级系统设置--环境变量--系统变量--path--编辑--新建--添加OpenSSL的bin目录路径--确定
Linux 或 macOS
打开终端,并使用以下命令编辑你的shell配置文件(.bashrc
, .zshrc
, .bash_profile
等,取决于你使用的shell):
export PATH=$PATH:/path/to/openssl/bin
将/path/to/openssl/bin
替换为OpenSSL实际的安装路径。之后,执行以下命令使更改生效:
source ~/.bashrc # 如果你使用的是bash
# 或者
source ~/.zshrc # 如果你使用的是zsh
确保你已经安装了OpenSSL,并且知道它的安装路径。如果你是通过包管理器安装的,通常安装路径会是标准的系统路径,例如/usr/bin
或/usr/local/bin
。
工具二:MT
下载链接:https://pan.baidu.com/s/1TxnB71BSnIUexzUk8OYXiQ?pwd=vm7j
提取码:vm7j
操作步骤
手机抓包一个是要把让电脑和手机出于同一个网络(模拟器),最简单连同一个wifi
1.模拟器代理设置
打开模拟器,找到设置,找到连接wifi(长按),把代理改成手动,填写电脑的ip(直接cmd那里ipconfig)找到ipv4的,或者在charles查看,填写端口号并保存
2.证书下载
配置好代理后打开模拟器的浏览器,输入地址:http://chls.pro/ssl进行证书安装下载
证书查看:设置--安全--信任的凭据
3.charles下载pem或cer证书
从下载charles下载的pem证书(或者cer证书也行,两个证书有对应的转换命令)
4.pem或cer证书hash值转换
pem格式证书转换命令:
openssl x509 -inform PEM -subject_hash_old -in 011.pem
cer格式证书转换命令:
openssl x509 -inform DER -subject_hash_old -in 011.cer
打开cmd窗口,进入证书下载目录,根据下载格式执行命令,得到如下图内容,红框内是命名需要用到的,后缀名的数字是为了防止文件名冲突的,如果两个证书算出的Hash值是一样的话,那么一个证书的后缀名数字可以设置成0,而另一个证书的后缀名数字可以设置成1;
5.hash.0文件转换
根据下载证书格式执行命令:
openssl x509 -inform DER -text -in 011.cer > 8a26b43b.0 #cer格式
openssl x509 -inform DER -text -in 011.pem > 8a26b43b.0 #pem格式
8a26b43b是上面计算的hash值,执行后得到一个8a26b43b.0文件
用记事本打开,看到如下:
在Certificate上面加上刚才解析出来的东西
从begin到end certificate
6.文件移动到安卓证书
保存文件后,通过MT工具把这个.0的文件放到模拟器安卓证书文件下
打开MT工具,直接拖进去,具体拖到哪个位置,自己找一下,然后把文件移动到放证书的位置/system/etc/security/cacerts/,再把这个.0的文件权限改为777(长按文件,属性,把读写执行权限都勾了)然后点开模拟器浏览器,就不会弹出不信任证书,助你轻松抓包。