Android 高版本无法抓取 HTTPS解决方案

Posted 燕鸻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 高版本无法抓取 HTTPS解决方案相关的知识,希望对你有一定的参考价值。

在接口测试中,相信很多人都遇到过 android 高版本(Android7.0 以上)系统无法抓取HTTPS包的问题。

由于在测试过程中对分析定位问题很不方便,所以咱们自己要想办法解决这个问题

一、Android6.0 及以下系统可以抓包,而 Android7.0 及以上系统不能抓包;

       原因:Android7.0+ 的版本新增了证书验证,所以 App 内不再像原来一样默认信任用户的证书;

二、解决方案

  1.让安卓开发解决,重新打包,对于安卓开发同学来说无非是多加几行代码的事,但是如果要想抓取别人产品的HTTPS包,那这种方式就行不通了。

  2.换一部Android6.0以下的手机/用系统6.0一下的模拟器安装app,可以解决这个问题

  3.Charles + VirtualXposed + JustTrustMe【主要讲解第三种方案】

三、首先进入 Github 下载如下两个 Page

  • VirtualXposed:https://github.com/android-hacker/VirtualXposed
  • JustTrustMe:https://github.com/Fuzion24/JustTrustMe    

 

 

 

   1.使用如下 adb 命令分别安装两个 pages

    adb -s C7YVB20413007239 install D:\\chomeDow\\VirtualXposed_0.18.2.apk
    adb -s C7YVB20413007239 install D:\\chomeDow\\JustTrustMe.apk

 

   2.安装完成进入 VirtualXposed apk 应用,点击 6 个小点进入设置页面

  

 

     3.进入设置页面,点击模块管理,勾选 JustTrustMe(我这里没有找到它,可能是我这个版本不需要在手动选择了,安装之后自动识别到了)重启之后我们重新进去设置页面,添加我们需要抓包的应用即可,我这里选择的钉钉做案例。

    

 

     4.点击添加应用,选择需要抓包的软件安装:

    

 

     5.配置 Charles 抓包

     6.回到 VirtualXposed 上滑解锁,打开我们之前安装的企业微信,则发现 charles 已经成功抓取到钉钉的 HTTPS 的数据包

    

 

以上是关于Android 高版本无法抓取 HTTPS解决方案的主要内容,如果未能解决你的问题,请参考以下文章

Android 7.0 以上 Charles 和 Fiddler 无法抓取 HTTPS 包的解决方式

无法解决“此版本的 IntelliJ IDEA 的 Android 支持插件无法打开此项目,请使用 4.1 或更高版本重试。”

解决Fiddler安卓抓包正常,无法抓取ios的Https请求问题

离子推送通知自定义声音无法在 Android Oreo 及更高版本上播放

Android 7.0解决抓取不到https包的问题

ReactNative0.59版本安卓Realese包无法连网问题