1.简介

通过前边和宏哥的学习,我们了解到Android 7.0 之后增加了对第三方证书的限制,抓包工具(charles、fiddler等)提供的证书都无法通过校验,也就无法抓取HTTPS请求了,对测试工作影响很大。

最近更新的微信 7.0 也增加了第三方证书校验,导致无法正常抓包。

2.解决思路

解决该问题一般有三个思路:

  1. 让开发打一个测试包,关闭对证书的校验。
  2. 将设备root,将证书安装到system分区。
  3. 将设备root,利用Xposed框架,利用justTrustme/SSL-killer等模块绕过第三方ssl的校验

以上三个思路虽然可行,但都比较复杂,配置成本比较高。有没有更简单的方法呢?

当然是有的。

这个方法仍然是利用思路3,不过利用virtualXposed工具,能够省去root的过程,安装两个软件即可搞定。

3.virtualXposed简介

经常折腾 Android 刷机 的同学应该都知道Xposed这个神级hook框架的存在。借助该框架以及开源插件,能够在不修改apk的情况下影响程序的运行。简而言之,借助Xposed框架和该框架之上的插件,能让app的功能强大十倍!

最常见的插件比如:

微信自动抢红包、消息防撤回、自定义界面、自动回复、消息屏蔽。。

抖音自动关注点赞,下载视频。。

修改系统界面、修改步数、虚拟定位。。

。。。

JustTrustme 就是其中一个插件,用于绕过 ssl 证书检查,借助它可以实现对 https 的抓包。类似的插件还有 SSLkiller、sslunpinning 等。

当然,这么强大的工具也有其缺点。最大的问题还是安装过程和系统兼容性。

  1. Xposed 安装需要root。如今root本身就是一件比较麻烦的事。。
  2. 国产手机厂商最热衷定制rom,导致Xposed存在很大的兼容性问题,一不小心就容易让手机变砖。。
  3. 微信 检测到相关插件后,会有封号风险。。

为了解决以上问题,国内一位大神借助 VirtualApp 实现了Xposed的一种免root方案 VirtualXposed

简单来说就是,VirtualXposed 制作了一个虚拟环境(可以理解为虚拟机),该虚拟环境中内置Xposed环境,用户只需将软件安装到该虚拟环境中,就能使用xposed的功能了。

4.工具准备

  • virtualXposed.apk
  • justTrustme.apk 或 SSLkiller.apk 或 sslunpinning.apk

工具下载:
关注“北京宏哥”公众号,发送“小程序”获取安装包下载地址。

5.使用方法

这个详细步骤前边的文章中宏哥也介绍和分享过,自己看前边文章即可,这里宏哥就一笔带过。

先阅读官方说明:

《吐血整理》高级系列教程-吃透Fiddler抓包教程(30)-Fiddler如何抓取Android7.0以上的Https包-番外篇

以Justtrustme.apk为例,SSLkiller.apk 和 sslunpinning.apk类似。

  1. 安装 virtualXposed.apk 和 justTrustme.apk 模块。
  2. 启动virtualXposed,安照提示赋予相应的权限。
  3. 在主界面点击菜单按钮,选择"添加应用"
  4. 在添加应用列表选择 "justTrustme" 和 需要抓包测试的App(比如微信、微博),并安装
  5. 在 virtualXposed 中打开 xposed 应用。点击左上角菜单按钮,切换到模块。此时会看到 "justTrustme" 选项。
  6. 在 "justTrustme" 选项后打钩,并按照提示,返回菜单界面重启virtualXposed
  7. done!

完成以上设置后,virtualXposed 中的 https 应用都能直接抓包,不会再提示证书无效了。

6.小结

目前的 VirtualXposed 还不甚完善。它尚未支持需要使用资源 Hook 的模块,对一部分模块的兼容性也尚待增强。

同时,它的工作原理,也决定了任何修改系统的 Xposed 模块均无法使用;但瑕不掩瑜,VirtualXposed 的确是个很有前途的项目。它大大降低了 Xposed 框架的使用门槛,让更多人能体验到各种花样百出的模块。

对于已经在系统中启用了 Xposed 的用户,还可以借助 VirtualXposed 方便地测试模块;既不用频繁重启手机,又毋需担心「翻车」后影响正常使用。

希望作者能进一步地完善这个项目,提升兼容性与稳定性,造福更多 Android 玩家。

想要了解更多详情,可以访问 VirtualXposed 的 GitHub 页面。

《吐血整理》高级系列教程-吃透Fiddler抓包教程(35)-Fiddler如何抓取微信小程序的包-下篇的更多相关文章

  1. 《吐血整理》高级系列教程-吃透Fiddler抓包教程(34)-Fiddler如何抓取微信小程序的包-上篇

    1.简介 有些小伙伴或者是童鞋们说小程序抓不到包,该怎么办了???其实苹果手机如果按照宏哥前边的抓取APP包的设置方式设置好了,应该可以轻松就抓到包了.那么安卓手机小程序就比较困难,不是那么友好了.所 ...

  2. 在Mac Os(苹果)上用手机抓包软件Charles抓取微信小程序中的高清无水印视频

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_118 手机抓包是一名测试工程师常备的技能,比如我想查看一个接口请求的参数.返回值,还有移动设备上的http请求.https请求,这 ...

  3. Charles抓取微信小程序数据 以及 其它应用网站数据

    为了抓取小程序数据所以使用Charles来抓取,下面介绍下使用方法(mac环境下使用).使用Charles可以非常方便的抓取Http/Https请求.官方dmg下载地址:点击此处下载 Charles抓 ...

  4. scrapy爬取微信小程序社区教程(crawlspider)

    爬取的目标网站是: http://www.wxapp-union.com/portal.php?mod=list&catid=2&page=1 目的是爬取每一个教程的标题,作者,时间和 ...

  5. 如何抓取微信小程序的源码?

    一.引言: 在工作中我们会想把别人的代码直接拿过来进行参考,当然这个更多的是前端代码的进行获取. 那么微信小程序的代码怎么样获取呢?  参考 https://blog.csdn.net/qq_4113 ...

  6. 微信小程序导航:官方工具+精品教程+DEMO集合(1月7更新)

    1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=14764346784612:简易教程:https://mp.weixin.qq.com/debug ...

  7. 微信小程序 教程及示例

    作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有,转载请联系作者获得授权.微信小程序正式公测, ...

  8. 微信小程序资源整理

    微信小程序相关的文档.教程.开源项目等资源的整理,以便于开发学习使用. —— —— 收录仅作个人学习使用,涉及侵权行为及时联系: maple_6392@163.com 项目地址:GitHub | 码云 ...

  9. 微信小程序开发教程 #043 - 在小程序开发中使用 npm

    本文介绍了如何在微信小程序开发中使用 npm 中包的功能,大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频版更新. 微信小程序在发布之初没有对 npm 的支持功能,这也是目前很多前端开发 ...

  10. 微信小程序之微信登陆 —— 微信小程序教程系列(20)

    简介: 微信登陆,在新建一个微信小程序Hello World项目的时候,就可以看到项目中出现了我们的微信头像,其实这个Hello World项目,就有一个简化版的微信登陆.只不过是,还没有写入到咱们自 ...

随机推荐

  1. WinUI 3 踩坑记:第一个窗口

    本文是 WinUI 3 踩坑记 的一部分,该系列发布于 GitHub@Scighost/WinUI3Keng,文中的代码也在此仓库中,若内容出现冲突以 GitHub 上的为准. WinUI 3 应用的 ...

  2. Elastic:为Elastic Docker部署设置安全

    文章转载自:https://elasticstack.blog.csdn.net/article/details/105710973 创建docker-compose.yml 在之前的教程中,那里使用 ...

  3. Solutions:如何运用Elastic App Search快速建立出色的React搜索体验

    建立搜索体验是一项艰苦的工作. 乍一看似乎很容易:建立一个搜索栏,将数据放入数据库,然后让用户输入对该数据库的查询. 但是,在数据建模,底层逻辑以及(当然)总体设计和用户体验方面,有很多事情要考虑. ...

  4. Elastic:创建你的第一个Elastic alert

    文章转载自:https://blog.csdn.net/UbuntuTouch/article/details/105340379 在Elasticsearch可以提供给我们数据的存储及快速的搜索,但 ...

  5. Logstash:使用ELK堆栈进行API分析

  6. 获取 Docker 容器的 PID 号

    # 获取容器的 CONTAINER ID docker ps -q 5354ce7e85e1 # 通过 docker top 获取 PID docker top 5354ce7e85e1 UID PI ...

  7. CentOS使用yum方式安装yarn和nodejs

    # 使用epel-release.repo源安装的nodejs版本是6.17.1,有些前端项目使用的话会提示版本太低,具体下图 # 命令执行后的详细情况:curl -sL https://rpm.no ...

  8. PostgreSQL 创建表格

    PostgreSQL 使用 CREATE TABLE 语句来创建数据库表格. 语法 CREATE TABLE 语法格式如下: CREATE TABLE table_name( column1 data ...

  9. 基于Netty的TCP服务框架

    19年写的一个基础的TCP服务框架,内置了一个简单IOC容器,当时的目标是一方面能作为组件供第三方集成实现TCP通讯相关功能,另一方面作为提供一种服务框架范式.所以框架核心点主要还是通过适度的封装,隐 ...

  10. SQL基础语句入门

    SQL语句入门 起因 学校开设数据库相关的课程了,打算总结一篇关于基础SQL语句的文章. SQL介绍 SQL最早版本是由IBM开发的,一直发展到至今. SQL语言有如下几个部分: 数据定义语言DDL: ...