美文网首页
安卓9下Charles(青花瓷) https 抓包

安卓9下Charles(青花瓷) https 抓包

作者: 長风先生 | 来源:发表于2019-12-10 19:14 被阅读0次

今年从 iPhone 转战 Android ,遇到的第一个大坑就是安卓7+的 https 抓包问题。
本人手机型号是 HUAWEI Mate 20 Pro | EMUI 9.1.0 | Android 9 ,出现的问题是手机安装 charles-ssl-proxying 证书后(PC端证书也安装完毕),手机浏览器的 https 抓包、解密正常,但是APP中请求的 https 包都是 <unknown>,如下图:


<unknown>.png

上网查阅原因说是:安卓7+以上由于系统安全性设置,用户在手机上引入的证书不会被系统信任,只有系统证书才可以。用户在手机安装的证书都默认放在了用户证书列表,如下图:


用户凭据.jpeg

想要将证书放到系统证书列表,则需要将手机 root。但是我不想 root 手机。

一、非 Root 手机进行抓包

感谢大佬提供的解决方法 (点此阅读原文)

手机不需要root,只需要安装以下两个工具:

过程如下:

  1. 安装 VirtualXposed
  2. 安装 JustTrustMe
  3. 进入 VirtualXposed 应用首页,点击“六个点
    VirtualXposed-首页.jpeg
  4. 进入设置页后,点击“模块管理
    VirtualXposed-设置页-模块管理.jpeg
  5. 勾选“JustTrustMe”模块
    JustTrustMe模块.jpeg
  6. 回到设置页,重启 VirtualXposed
  7. 再次打开 VirtualXposed - 设置页,点击“添加应用
    VirtualXposed-添加应用.jpeg
  8. 以 zhihu 为例,勾选 zhihu,点击安装


    安装 zhihu.jpeg
  9. 点击“VIRTUALXPOSED”后,等待安装完毕
    选择VirtualXposed.jpeg
  10. 届时在 VirtualXposed 中访问 zhihu,charles 就可以成功抓到 https 的包了
    访问 zhihu.jpeg
    https 解密成功.png
    如果抓到的响应结果是乱码,那么就是PC端或者移动端的CA协议没有安装好 (Mac端参考链接IOS端参考链接Windows端和Android端参考链接)

非Root抓包实现原理可以用原作的话一句概括:“可以将 VirtualXposed 粗暴的当虚拟机对待。

二、Root 手机进行抓包

Root手机原理是将用户下载的CA协议移动到系统信任的证书目录下。
具体过程,详见:安卓7.0以上手机使用charles代理抓取https数据

三、其他方式

若是自己开发的应用,调试时可以通过修改源码中的安全设置实现 (参考链接);
若是第三方应用,也可以自己解包,更改代码,重新打包...这里不再赘述。

四、多端抓包教程

五、参考链接

相关文章

网友评论

      本文标题:安卓9下Charles(青花瓷) https 抓包

      本文链接:https://www.haomeiwen.com/subject/dzeggctx.html