目录

  • 概述
  • 不同版本 Android 的策略
  • 抓包局限
  • 手机虚拟机简介
  • 信任证书
    • 导出证书
    • 计算证书哈希值
      • .pem 等格式
      • .crt/.cer 等格式
    • 将证书放入到 system 的对应路径下
    • 抓包
      • 虚拟机-电脑抓包
      • 虚拟机-手机抓包
  • 其他
    • 为什么我选择了 VMOS PRO
    • 其他

概述

Android 7 开始,只信任预装的系统 CA,而 Android 6.0 之前默认情况下还会信任用户添加的 CA 存储区。这就导致在 Android 7 上无法直接对 HTTPS 的请求进行抓包。具体参见 Google Android 官方这篇文档 网络安全配置

不同版本 Android 的策略

对于 Android 7 及以上,可以使用配置了自定义可信的 CA 的 debug 包进行开发时的抓包,或者将用户的 CA 添加到系统 CA 目录中,但这需要 root 权限。

对于 Android 7 以下,用户的 CA 证书可以直接被信任,直接进行抓包操作,但是某些 APP 可能不兼容较早的系统。

抓包局限

电脑常用的抓包软件有 CharlesFiddler 等。当手机没有 root 权限的时候,只能安装证书到用户的目录,是不会被系统所信任的,这种情况只能抓取 HTTP 请求或者是打包的时候添加了相关信任配置的 APP,一般是项目组内开发测试多用的 debug 包,然而发布正式版的时候会将该配置关闭。

当手里有 debug 包的时候是最方便的。只需要使用抓包软件,如 CharlesFiddler 等,按照网上的教程简单配置并在手机上安装对应的证书,然后就能进行抓包了。

有 debug 包是最理想的情况,但是某些情况手里只有 release 版或者想抓包其他 APP 的话,安装用户证书是不行的。而将证书安装到系统目录下需要 root 权限,很多手机无法很好地 root 或者 root 之后会有一系列问题,导致无法将证书安装到系统目录下。

当然,寻找一个可以很好 root 的手机,或者是在电脑上使用模拟器的确是个不错的解决方案,但是这个手机并不一定会一直随身携带,同时电脑模拟器会占用较大的资源,也会影响效率,因此在手机能有一个能够抓包的环境也较为重要。

手机虚拟机简介

这两年手机的硬件配置日渐提升,手机也有了运行虚拟机的能力。市面上也有不少类似的产品,这些产品的原理并不知道,但是能够很好地模拟了一个手机的环境,并且能够方便在真机上运行。

如下列举部分手机用虚拟机,一般可以在各大手机应用市场中下载到。

VOMS 官网:http://www.vmos.cn/product_center.htm
VMOS PRO 官网:http://www.vmos.cn/product_center_vmospro.htm
光速虚拟机官网:http://www.gsxnj.cn/index/
51 虚拟机官网:https://51xnj.com/

手机虚拟机的出现,能在手机中运行额外的系统,可以同时运行多个相同的 APP,如果带有 root 权限可以进行一些高权限的操作。虚拟机一般包含了 root 权限,所以可以用它来进行抓包。

信任证书

将 CA 证书添加到系统目录的方法很简单,但是需要 root 权限。当使用虚拟机或者手机有 root 权限后即可操作,步骤如下:

导出证书

首先导出证书。Charles 导出的可能为 .pem 格式的证书,如 Charles.pemFiddler 导出的可能为 .crt 格式的证书,如 FiddlerRootCertificate.crt。其他抓包软件有各自的格式或者命名。

计算证书哈希值

计算不同证书的哈希值需要不同的参数。此处使用 openssl 工具来计算。如果系统不自带,可以自行安装。

.pem 等格式

openssl x509 -inform PEM -subject_hash_old -in 证书路径

.crt/.cer 等格式

openssl x509 -inform DER -subject_hash_old -in 证书路径

-inform 有三种参数,分别是 DER, NET, PEM,此处仅介绍两种。

第一行 8 位十六进制数就是它的哈希值,例如下图

将证书放入到 system 的对应路径下

计算出哈希值之后,将证书重命名为 哈希值.0 的文件,比如上图的为 bb84ffc3.0,然后将该证书放入 Android 手机的 /system/etc/security/cacerts/ 下即可(首次使用可能需要 root 权限)。然后去手机的证书目录就能找到,若未看到可以尝试重启。此步骤完成之后,证书则已经被加入到可信任的列表中了。

抓包

以下操作都以 VMOS PRO 虚拟机为示例,其他虚拟机类似。

去应用市场下载 VMOS PRO 后,打开下载镜像。这里安装的是 Android 7.1 精简版(64位) 的版本,真机为 Android 11。下载完成后即可使用。不过 VMOS PRO 会包含一些广告。

然后需要导入真机上面的应用,在“文件传输”中即可导入。部分 APP 可能直接导入安装失败,需要下载 APK 包进行安装。

虚拟机-电脑抓包

打开 WLAN 设置,设置代理 IP 和端口号为电脑本地的 IP 与端口,即可抓包。


设置完成后,打开电脑相关的软件,此处使用 Charles 进行抓包。这里对线上的“知乎” APP 进行抓包,获取热榜数据。

当电脑切换不同环境或者 host 后,也能通过代理生效。同时,虚拟机的代理设置与真机的代理设置并不冲突或者共用,也就是说,当手机不设置代理直连线上环境时,虚拟机可以使用代理连接电脑走其他环境。

虚拟机-手机抓包

关闭代理网络设置,打开抓包软件,例如 HttpCanary 等,即可进行抓包。这种情况下,便于在电脑不在身边时进行抓包。

此处以 HttpCanary 为抓包软件实例。

打开 HttpCanary 后,开启抓包,会建立一个 VPN,然后代理流量。在 VMOS PRO 打开线上的 微博 APP 在热搜榜随意点开一个热搜话题进行抓包,可以得到下面的内容。


即可在手机上便捷地进行抓包了。

其他

为什么我选择了 VMOS PRO

这里使用 VMOS PRO 是与我自己手机兼容性和易用性考虑的。一开始使用的是 VMOS,但这是 Android 5.1 的系统,过于老旧,某些 APP 在这上面可能无法运行。后来使用光速虚拟机后,发现有个我想要抓包的线上 APP 无法正常启动,后来下载了 VMOS PRO 后目前使用的 APP 都能顺利启动并且抓包。

但是 VMOS PRO 并不是完全免费的,开启 root 权限等一些高级功能需要会员,但是是否开启 root 不影响对 /system 目录的读写。同时 VMOS PRO 有多个 Android 版本的镜像可以选择,也可同时运行多个虚拟机(需要会员)来进行并行的调试和抓包。

我这里也没有使用 平行空间 APP,因为 平行空间 APP 在我的 Android 11 的手机上无法正常启动 APP,也无法验证抓包。

其他

运行虚拟机需要较大的内存。内存较小的手机可能会被杀后台等情况。同时升级了 Android 高版本之后,可能某些软件无法正常运行,此时运行虚拟机也是一个临时的解决方案。

Android 免 root 抓包简易教程相关推荐

  1. Android 免root抓包

    没用过,以后试试.

  2. whistle安卓7+免root抓包

    whistle 安卓7+ 免root抓包 为什么使用whistle抓包工具? whistle支持抓包,mock数据,支持移动端抓包,且安卓7+版本抓包不需要root 但相对于 charles 和fid ...

  3. APP渗透—Android 7.0 抓包(教程)

    零基础学黑客,搜索公众号:白帽子左一 关于APP渗透的教程及思路,之前发过视频,视频地址:https://www.bilibili.com/video/BV1WK411w7UA/ 用到的工具 1.Pr ...

  4. VMOS虚拟机与Fiddler免root抓包(超简单解决抓包无网络问题)

    Fiddler抓包Android手机https.http教程 先看一下上面的文章了解一下Fiddler在真机上是如何抓包的. 然后再回到正题,这样抓包对于一些小程序或者APP来说会出现没网的情况 但是 ...

  5. android 非root抓包,未root的Android手机抓包方法(非tcpdump)

    但是有个限制,就是抓包的机器必须获取了root权限. 所以,遇到未root的手机,tcpdump就无能为力了. 那如何抓未root的手机的包呢? 方法就是:手机连路由,抓路由的包,过滤出手机的包(好吧 ...

  6. Fiddler抓包简易教程

    由于本人能力有限,文中若有错误之处,欢迎指正. 转载请注明出处:http://www.jianshu.com/p/9e05a2522758 Fiddler是什么? Fiddler是一个http协议调试 ...

  7. Whistle 抓包简易教程

    详细内容请看Whistle官网 Whistle 是基于Node实现的跨平台调试代理工具. 安装流程 1. 安装 node 终端输入 node -v 检查 node 是否安装成功 2. sudo npm ...

  8. Charles最新破解版苹果iphone安卓android手机抓包分析教程笔记

    Charles最新破解版苹果iphone安卓android手机抓包分析教程笔记 中间遇到各种问题导致最终没法看到抓包信息,一个坑一个坑的埋,终于成功抓包小程序. 梳理了下可以尽量减少栽坑的安装过程,如 ...

  9. 安卓 未root 虚拟机 断网 配置抓包详细教程

    考虑到多数人没有抓包经验,甚至没听说过"root"一词,本教程基于一台普通未root安卓手机进行抓包教程,虚拟机抓包进入APP出现断网情况解决方案. 抓包工具 1.Httpcana ...

最新文章

  1. 静态方法和实例化方法的区别
  2. Wdatepicker日期控件的使用指南
  3. Django websocket 长连接使用
  4. SQL 2005 使用row_number来分页
  5. 【kafka】Kafka Consumer 中的心跳线程有什么作用?
  6. kvm虚拟机设置万兆网卡_kvm已经设置桥接网卡的虚拟机无法连接宿主机?
  7. 【转】socket提交http表单 [C++]
  8. 9.docker commit
  9. 【故障诊断预测】基于matlab FFT与DBN轴承故障诊断预测【含Matlab源码 1741期】
  10. Java: 将中文省市名转换为指定格式拼音
  11. DataGrip连接不上本地localhost数据库解决办法
  12. Android ListView notifyDataSetChanged()不刷新数据
  13. vue漂亮的企业网站模板
  14. WiFi无线网卡属性设置——英特尔无线适配器高级设置
  15. python导入gif_Scratch3.0直接导入gif动画
  16. 支气管炎如何治疗,试试这些食疗方,马上见效!
  17. oracle循环数据字典,Oracle DUL工作原理和技术实现
  18. 为什么人人都爱康师傅
  19. X11VNC远程连接Ubuntu
  20. c语言课程设计自动答题系统,C语言课程设计-单项选择题标准化考试系统设计.doc...

热门文章

  1. ICCV2019 |论文阅读——SCRDet:Towards More Robust Detection for Small, Cluttered and Rotated Objects
  2. 小项目之数据库设计经验分享
  3. SSM整合(搭建一个Web脚手架)
  4. 单片机外部中断触发方式:电平触发和边沿触发两者说明
  5. 批量给多个 PPT 幻灯片文件加上统一的文字水印或图片水印
  6. 插板法、插空法、捆绑法
  7. [学习][数据结构]二叉搜索树
  8. python鞋子_Micropython 鞋码匹配仪(标题图与内容无关)
  9. Greenplum 优化 - 分布式键,重建索引,序列
  10. SEO人员,一定要为首页进行排名吗?