最全总结 | Android 系统抓包喂饭教程!

优雅先森。
优雅先森。
订阅者
265
文章
0
粉丝
测试交流1 240字数 1298阅读4分19秒阅读模式

1. 前言

大家好,我是安果!

在编写爬虫前,我们都需要对目标应用进行抓包,然后分析一波后,才能进入到编写脚本的阶段文章源自玩技e族-https://www.playezu.com/216056.html

对于使用 iPhone 的小伙伴来说,日常抓包不要太容易。PC 端工具,比如:Charles、Fiddler 完全够打;「Stream」是 iOS 端一款非常强大的网络抓包应用,界面简洁的同时功能非常强大文章源自玩技e族-https://www.playezu.com/216056.html

但对于使用 Android 高版本系统的小伙伴来说,抓包就没那么便利了!由于高版本系统提高了安全策略,要抓包必须将 CA 证书放置到系统证书目录下才能进行正常抓包,而用户安装的证书默认为用户证书,导致很多 App 没法进行正常抓包文章源自玩技e族-https://www.playezu.com/216056.html

本篇文章将以常见场景介绍 Android 高版本系统抓包的操作步骤文章源自玩技e族-https://www.playezu.com/216056.html

2. 非 Root 设备

Android 同样有一款强大的网络抓包工具,即:小黄鸟「HttpCanary」文章源自玩技e族-https://www.playezu.com/216056.html

具体的操作步骤如下: 文章源自玩技e族-https://www.playezu.com/216056.html

2-1导出 HttpCanary 根证书文章源自玩技e族-https://www.playezu.com/216056.html

安装小黄鸟 App 后,进入到设置页面,导出 HttpCanary 根证书文章源自玩技e族-https://www.playezu.com/216056.html

类型选择「System Trusted(.0)」文章源自玩技e族-https://www.playezu.com/216056.html

这样,HttpCanary 根证书保存到「内部存储路径/HttpCanary/cert/...0」目录下 文章源自玩技e族-https://www.playezu.com/216056.html

2-2安装APKPure和 VMOS Pro 应用

VMOS PRO 下载地址:om/cn/vmos-pro/com.vmos.ggp

PS:由于VMOS PRO应用格式为 XAPK,这里推荐通过APKPure 安装 XAPK 格式的应用

2-3VMOS 导入 RE 应用、目标应用及 HttpCanary 根证书

打开 VMOS Pro 应用,导入 Root Explorer 应用、目标应用及 HttpCanary 根证书文件

这样,VMOS 中就包含了目标应用、RE 文件管理应用,并且 HttpCanary 根证书文件默认被保存到「VMOSfiletransferstatio/」下

2-4导入证书到系统证书目录下

在 VMOS Pro 中,通过 RE 应用将HttpCanary 根证书文件移动到系统证书目录下

系统证书目录:/system/etc/security/cacerts/

2-5开始抓包

打开小黄鸟 App,在设置目标应用中设置为「VMSO」,然后在主界面开启抓包开关,最后在 VMOS 中操作目标应用

目标应用的网络请求都会展示在小黄鸟主界面列表中了

需要补充的是,小黄鸟 HttpCanary 应用中更推荐使用「平行空间」进行抓包,但是实际使用过程发现存在闪退及安装插件等问题,不太推荐使用

3. Root 设备

如果手机已经完成 Root,我们只需要将第三方证书移动(比如:小黄鸟、Charles 等)移动到系统证书目录即可

这里通过小黄鸟 App 及 Charles 进行讲解,Fiddler 类似

3-1小黄鸟 App 抓包

操作步骤如下:

  • 手机解锁并 Root

  • 安装小黄鸟 HttpCanary应用,并导出 HttpCanary 根证书,格式选择和上面一样

  • 通过数据线,拷贝 CA 证书到 PC 上

  • PC 端下载 adb 并配置环境变量

  • 通过下面一系列 adb 命令,将证书 PUSH 到系统证书目录下

  • 打开小黄鸟应用,设置目标应用

  • 在小黄鸟主界面点击抓包按钮,即可以对目标应用进行抓包了

# 授予adb root权限
adb root
# 禁用系统验证
adb disable-verity
# 重启手机
adb reboot
# 授予adb root权限
adb root
# 在将文件 push 到 '/system' 文件夹之前,必须先输入命令 'adb remount'
adb remount
# 拷贝证书到/system/etc/security/cacerts/下面
# adb push 87bc3517.0 /system/etc/security/cacerts/
# 重启
adb reroot
# 查看是否包含导入的CA证书
adb root
adb shell
cd /system/etc/security/cacerts/
ls

3-2Charles 抓包

操作步骤如下:

  • Charles 在帮助中下载证书(比如:CER证书),通过数据线拷贝到手机上

  • 在文件管理中找到这个证书手动进行安装

    默认会安装到用户证书中

    安装目录:/data/misc/user/0/cacerts-added/

  • 使用下面 adb 命令开启手机 system目录的读写权限

  • 安装 RE 文件管理应用并授予 Root 权限,将上面的证书从用户证书目录移动到系统证书目录下

    系统的证书目录:/system/etc/security/cacerts

  • 重启手机

  • 抓包测试

    查看 PC 端的 ip 地址,手机保持在同一局域网,然后设置为手动代理,最后抓包进行测试

# 以 root 权限执行
adb root
# 禁用系统验证
adb disable-verity
# 重启手机
adb reboot
# 以 root 权限运行
adb root
# 重新挂载
adb remount

4. 最后

上面以手机是否 Root 简单阐述了高版本 Android 系统各种场景的抓包流程

除了上面的抓包方式,还有很多方案可以选择。对于 Root 设备我们可以安装 Magisk 面具,再配合 movecert 模块进行抓包;或者我们也可以通过 EdXposed 框架 + trustmealredy 模块进行抓包,实际工作中,我们可以根据需求自行选择适合自己的方式

如果你觉得文章还不错,请大家点赞、分享、留言下,因为这将是我持续输出更多优质文章的最强动力!

软件功能测试模板本文转自于TesterHome,如有侵权请联系(2523030730@qq.com)删除。

 
    • Seven
      Seven 9

      无 root 的手机还有什么办法能抓 https 的建议题主截图,或者录屏配合文字,更方便查阅吧感谢大佬解决了这两天的疑惑,我说为啥装完证书后抓的都是乱码了。目前按照高版本安卓(非 root)百度了一个文章解决了抓包问题,使用的工具为 charles+VirtualXposed+JustTrustMe。因为 VirtualXposed+JustTrustMe 为 git 下载,所以自己放了一个百度下载链接,欢迎使用者自取。
      链接:om/s/1IZlqssCGc1ZRNyoBrInyYQ?pwd=asgx
      提取码:asgx安卓有的机型配代理时多了一项’域名’输入框,不输入还抓不了包,请问这个输入框输入哪个域名才行呢?

    匿名

    发表评论

    匿名网友
    确定

    拖动滑块以完成验证