这里主要是以真机为测试环境,不使用模拟器,我这里用的是小米6,安卓版本为9

主要是学习一下和root相关的知识(顺便再水一篇博客)

前置知识

一些相关的术语和root知识,可以看一下极客湾的ROOT指南:https://www.bilibili.com/video/BV1BY4y1H7Mc/?share_source=copy_web&vd_source=35d5dfeb47a963c5dbc7d7d4f9c17ca5,对我这个玩机小白肥肠友好

安卓分区

大致分为五个分区:Boot、System、Data、Recovery、Cache

首先是Boot分区
Pasted image 20250417135044
root的操作主要也是在修改Boot分区,还有一些比较底层的操作,比如改CPU调度、给GPU超频等也在这个分区

如果该分区损坏的话,就会导致启动卡在第一屏,也就是logo界面

System分区
Pasted image 20250417135314
这里图很形象也不多说了,System分区要是损坏就会卡在开机第二屏也就是进不去操作系统了,卡在动画界面

Vendor分区现在会归并到System分区了,以前说是会独立出来

Data分区
Pasted image 20250417135840
这个理解也很简单,就是平时各种的使用数据之类的

Cache分区
Pasted image 20250417135931
就是缓存一些常打开的应用程序的数据,方便快速启动之类的

Recovery分区
Pasted image 20250417140016
恢复分区类似于PE的存在,可以用来恢复和更新其他分区的内容,刷机刷系统一般就在这个分区进行

但是现在很多手机不存在Recovery分区了,因为安卓7.0之后引入新的OTA升级方式:A/B System Updates
它是把System和Boot分成了两套
Pasted image 20250417140307
平时在用的就是A分区,没在用的就是B分区
这种分区的好处就是可以做到系统无缝升级,而且可以做到防止升级系统异常导致无法开机等情况,原理就是系统升级首先是在备份分区升级,然后手机重启就会将A、B分区切换,此时升级好的备用分区就是我们的主分区,当然升级异常处理也是同理,只要我们将分区回滚回未升级的就能解决了。

但是这种方式的缺点就是会占用双倍System空间,因为总有一个需要用来备份

于是又多了一个VAB(Virtual A/B System Updates)虚拟AB分区用来解决这种情况,安卓11后的机型普遍采用这种方式来解决空间占用问题
Pasted image 20250417163518

这种AB分区刷机会比较麻烦,因为Recovery并到了Boot分区里了
Pasted image 20250417163630
所以更推荐用更底层的fastboot来操作

Bootloader(引导加载器)和Fastboot

这里需要先知道Bootloader,下面是极客湾的一张图

Pasted image 20250417172743
Recovery比作PE,fastboot的这个阶段就是BIOS或者UEFI了
Pasted image 20250417203120
引导操作系统内核之后就会进入fastboot阶段,也就是刷机阶段了,fastboot模式下连接电脑可以通过fastboot程序输入命令执行很多操作,比如解锁设备、注入boot镜像、线刷系统等

不同手机进入fastboot的方式
Pasted image 20250417203340
还可以通过adb用下面命令进入

adb reboot bootloader

连接手机后可以用 fastboot devices检测是否连接设备,当然也可能没有识别到,比如我这样
Pasted image 20250417203524
这是驱动问题,需要我们去设备管理器装一下fastboot驱动,驱动链接:https://cz-jam.lanzouj.com/iZICY02v2k8j
Pasted image 20250417205450

Pasted image 20250417204841

安装好之后就能检测了
Pasted image 20250417205924

fastboot的一些命令
Pasted image 20250417215838

卡刷和线刷

卡刷指的就是通过Recovery方式刷机,也就是直接把要刷的包拷进手机里,在手机上刷

线刷指的就是通过fastboot的方式来刷机,且需要用数据线连接电脑

开发者选项

进入手机的参数界面点击7次版本号就可以进入

ADB

从这里安装即可:https://developer.android.com/tools/releases/platform-tools?hl=zh-cn#downloads
Pasted image 20250417125510
里面就包含了很多常用的工具包括我们后面会用到的fastboot

至于adb的使用,可以直接看官方文档:https://developer.android.com/tools/adb?hl=zh-cn#burstMode

root手机

这是很重要的一步了,只有root之后才能安装证书,这里的操作都需要打开开发者选项之后才行

第一步是OEM解锁,只要去开发者选项里面打开即可,有些手机可能没有,所以最好还是选择有的,不过这一步并不一定能解锁BootLoader,比如小米解锁OEM只是表示允许解锁BootLoader

大部分手机root基本都是两步走,第一步解锁BootLoader,第二步再修改boot文件刷入Magisk

然后就是解锁BL了,这里小米可以直接点击解锁状态,然后点击绑定设备和账号,进入fastboot模式,然后电脑上下载官方的解锁设备:https://www.miui.com/unlock/index.html
Pasted image 20250417212144

官网也贴心地给出了流程
Pasted image 20250417212246
我们usb连接手机后,启动工具点击解锁即可
Pasted image 20250417212611

其他品牌的手机解锁就不记录了

解锁完之后就可以开始root了,root分为两种方法,也就是前面说的卡刷和线刷
这里采用线刷,所以简单介绍一下卡刷的流程就算了,毕竟我只是为了做渗透测试,不需要这么复杂

卡刷

因为说过Recovery类似PE,但是手机出厂给的Recovery功能简单不能随便刷东西,也就是需要刷入第三方Recovery来进行操作,出名的第三方Recovery就是TWRP,他的项目地址在这:https://twrp.me/

这是一个流程图:
Pasted image 20250417213449

先通过fastboot线刷TWRP,然后再进入TWRP进行操作,各品牌进入TWRP也就是Recovery如下:
Pasted image 20250417213636

也可以adb直接重启进入recovery

adb reboot recovery

刷新recovery的命令
Pasted image 20250417213751

然后就是刷入最流行的root管理工具Magisk,也就是常说的面具,项目地址:https://github.com/topjohnwu/Magisk
具体操作大概就是将zip扔进手机,然后TWRP下载,再将后缀改成apk安装即可,具体就不尝试了,现在新的Magisk直接就是apk了

而且后面AB分区的话,刷TWRP就很麻烦了,要刷两遍

线刷

这里给一个线刷的流程图
Pasted image 20250417214435
Magisk的原理就是对Boot镜像进行修补来获取root,所以我们可以提取出Boot镜像,修补好再刷入,但是提取Boot镜像又需要root,所以我们需要使用别人已经给我们提取好的boot镜像,厂商的刷机包里就有

小米就直接去这里下载:https://xiaomirom.com/
也可以直接在手机系统更新里面下载完整包,一般下载到download里面

线刷包下载好之后解压找到boot.img即可
Pasted image 20250417223452

然后将boot.img传到手机,我们要先在手机上安装好Mgisk,然后修补该boot.img文件,然后把该文件拷到电脑上,手机重启到fastboot模式,然后刷入修补后的这个boot就可以获取root权限了

修补后的镜像
Pasted image 20250417225431

然后fastboot刷入该镜像

fastboot flash boot .\magisk_patched-28100_E0MWY.img

Pasted image 20250417225717
这时候重启手机,如果能切换到超级用户就是成功了
Pasted image 20250417230244

成功root!

抓包配置

这里选择用小黄鸟:https://reqable.com/

下载客户端的时候需要查看架构,可以用在ubs调试连接之后用下面的命令

adb shell getprop ro.product.cpu.abi

Pasted image 20250417125847

各架构的说明:

  • armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年5月以后的生产的大部分Android设备都使用它.
  • arm64-v8a: 第8代、64位ARM处理器,现在已经是主流版本,三星 Galaxy S6是其中之一。
  • armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。
  • x86: 平板、模拟器用得比较多。
  • x86_64: 64位的平板。

然后我们之后的操作都需要root才行,然后就是启动reqable的连接,然后安装android的证书,这一步都是自动的,而且都有指引,就不记录了

安装了系统证书后,可以不用安装用户证书了

Pasted image 20250417233103

然后就可以愉快的抓包了

如果嫌重放不方便,还可以将流量导向bp或者yakit,设置一个二级代理即可

Pasted image 20250417235319

然后就可以愉快地抓包了,虽然后面还会有很多让你抓不到包的头疼问题😭