不用root手机-安卓9下 App 抓包

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


.png

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

用户凭据.jpeg

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

一、非 Root 手机进行抓包

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

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

  • https://github.com/android-hacker/VirtualXposed
    • apk 下载: https://github.com/android-hacker/VirtualXposed/releases
  • https://github.com/Fuzion24/JustTrustMe
    • apk 下载: https://github.com/pengwei1024/JustTrustMe/releases

过程如下:

  1. 下载并安装 VirtualXposed
  2. 下载并安装 JustTrustMe
  3. 进入 VirtualXposed 应用首页,点击“六个点
    VirtualXposed-首页.jpeg
  4. 进入设置页后,点击”添加应用
    添加应用
  5. 勾选 JustTrustMe 模块,再点击安装


    勾选 JustTrustMe 模块后点击安装
  6. 回到设置页,点击“模块管理
    VirtualXposed-设置页-模块管理.jpeg
  7. 勾选“JustTrustMe”模块
    JustTrustMe模块.jpeg
  8. 回到设置页,重启 VirtualXposed
  9. 再次打开 VirtualXposed - 设置页,点击“添加应用
    VirtualXposed-添加应用.jpeg
  10. 以 zhihu 为例,勾选 zhihu,点击安装


    安装 zhihu.jpeg
  11. 点击“VIRTUALXPOSED”后,等待安装完毕
    选择VirtualXposed.jpeg
  12. 届时在 VirtualXposed 中访问 zhihu,charles 就可以成功抓到 https 的包了
    访问 zhihu.jpeg

    https 解密成功.png

    如果抓到的响应结果是乱码,那么就是PC端或者移动端的CA协议没有安装好 (Mac端参考链接 、IOS端参考链接、Windows端和Android端参考链接)

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

二、Root 手机进行抓包

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

三、其他方式

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

四、多端抓包教程

  • Mac和iOS
  • Windows和Android

五、参考链接

  • 我就想问问现在安卓怎么 charles 抓 https 包,真愁人。
  • 周一到五忙着吹牛划水骗工资周六日抓紧时间发个伪高端技术文章
  • 安卓7.0以上手机使用charles代理抓取https数据
  • Android 7.0 https抓包与Android9.0 http问题
  • 如何给华为手机网络连接设置代理

你可能感兴趣的:(不用root手机-安卓9下 App 抓包)