当前位置:   article > 正文

2024最新版Android逆向教程——第4天:真机环境的配置_安卓逆向

安卓逆向

安卓是基于 Linux 内核的一个移动操作系统。在 Linux 这种 Unix 系统中,通常都有两种账户,一个是普通用户,一个是 root用户。 一般来说我们在安卓手机上都是普通用户。因为市面上的 App 良莠不齐,出于安全的考虑,只有开发者才会去获取整个操作系统的更改权限,普通用户是没有高级权限的。

对于我们而言,为了进行 App 逆向和协议分析,获取整个安卓设备的权限是至关重要的。不论是 Frida,Xposed 还是 Cydia Substrate 这类应用,都需要开发者能完全控制自己的文件系统,所以本文我们一起来学习安卓刷机与 Root。

一、安卓逆向设备推荐

如果只是单纯的做安卓逆向对电脑的要求并不高,但是安卓逆向玩到最后就是玩系统,玩内核,如果你想要编译安卓系统,修改安卓系统刷到手机上辅助你进行逆向的话,对电脑的要求就稍微会高一些,这里有一篇 Google 的文章,安装系统编译设备要求:https://source.android.google.cn/docs/setup/start/requirements?hl=zh-cn 推荐电脑配置:

① 能装VMware虚拟机:快照功能非常好用
② 能分配给虚拟机的内存:16G以上 推荐32G(Google推荐64G) 我自己的电脑内存是64G的:

③ 能分配给虚拟机的硬盘:500G以上 推荐1T(机械硬盘和固态都可,现在硬盘便宜)

手机设备推荐(不推荐使用模拟器): 推荐使用 Google pixel 型号的手机,某宝老百姓的淘吧店铺购买。比较有钱的可以用 pixel6(可以刷KernelSU和使用eBpf(支持比较好),使用是比较好的,唯一的缺点就是用来做测试机会比较贵),还有就是推荐pixel4,可以刷Andriod13的系统,内核版本4.14,可以刷KernelSU,但是对于eBpf的支持不是很好,还有就是推荐pixel1,比较便宜完全摆烂的状态,最高官方的系统版本只能刷10,然后内核版本是3.18,KernelSU和eBpf都搞不了,但是普通的安卓逆向和系统定制都是可以的,优点就是价格低,推荐新手朋友使用 pixel1 就好了,本文也采用 pixel1 进行演示(笔者比较穷)。

KernelSU:https://kernelsu.org/zh_CN/guide/installation.html
https://zhuanlan.zhihu.com/p/595985936
eBpf:https://tech.meituan.com/2022/04/07/how-to-detect-bad-ebpf-used-in-linux.html
https://cloudnative.to/blog/bpf-intro/

二、真机环境配置(刷机基础教程)

2.1 刷机方式的分类

线刷:插USB线,刷的比较彻底,可以刷 bootloader、radio — 可以救砖
卡刷:将安装包弄到手机sd卡中,刷完后需要双清、三清、四清等。一般用来刷第三方的系统 lineage os(双清)

2.2 刷机包的分类

根据刷机方式的不同,将刷机包分为两大类:

  1. 线刷包/工厂镜像包(本文采用这种)
  2. 卡刷包/OTA全量包/OTA增量包

2.3 谷歌手机工厂镜像

下载地址:https://developers.google.com/android/images?hl=zh-cn
在这里插入图片描述
在这里插入图片描述
注意:“sailfish” for Pixel 能刷的版本,是由 Version 决定,如果在 Version 下没有找对应版本,则表示该机是刷不了此系统的。 耐心等待下载即可,如下图所示:
在这里插入图片描述
如果下载较慢的小伙伴,我已经将其放入百度网盘中,凭下面的链接可以直接从网盘中进行下载:

链接:https://pan.baidu.com/s/1McsNzU_9b-9MRVTKMs6Dgw 
提取码:dtwh 
--来自百度网盘超级会员V9的分享
  • 1
  • 2
  • 3

2.4 简单配置

手机通过 USB 连接电脑,需要用到 adb,刷机包通过线刷刷入手机,需要用到 fastboot,这俩个东西在安卓 SDK 中自带,路径为 SDK\platform-tools 添加到系统环境变量即可,可以参考文章:https://blog.csdn.net/xw1680/article/details/133411112
https://blog.csdn.net/xw1680/article/details/133853222
开启开发者选项: 选择 设置 --> 关于手机 --> 版本号,连续点击版本号开启 开发者模式(具体需要点击几次,系统是会有提示的) 如果是英文系统,大佬自行解决。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

开启USB调试: 选择 设置 --> 系统 --> 高级--> 开发者选项,开启 USB 调试,老规矩,如果是英文系统,请通过百度或者谷歌自行翻译。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过数据线将手机连接至电脑,手机端会弹出 USB 调试申请,允许即可,如下图所示:

开启成功的标志,cmd 中输入 adb devices,如下图所示:
在这里插入图片描述

2.5 进入 Bootloader 模式

进入 Bootloader 默认有两种方式,如下:

关机状态下 按住音量减少键 + 电源键 使用这种方式不用开启 开发者选项以及 USB 调试

开机状态下,在 cmd 中通过 adb 命令进入 adb reboot bootloader,如下图所示表示 Bootloader 解锁是成功的:
在这里插入图片描述
我们还要保证使用 fastboot devices 命令能将手机设备识别成功,如果执行该命令啥都没有,说明没有安装驱动,需要我们手动找到驱动的位置进行安装,如下图所示:
在这里插入图片描述
安装驱动的方式如下: 安装 Google USB 驱动,AndriodStudio 中即可下载,在 https://blog.csdn.net/xw1680/article/details/133411112 一文中已经讲解了如何勾选,这里不再进行赘述。首先按快捷键 Win+R 打开运行窗口输入 devmgmt.msc 命令,并单击确定按钮打开设备管理器,如下图所示:
在这里插入图片描述
在 Windows 设备管理器中查看 USB 连接的手机,如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选好了之后,直接单击 下一页,如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
控制台再次输入命令 fastboot devices 的时候,如下图所示(奇迹出现了):
在这里插入图片描述
备注:要想刷机首先要 Bootloader 解锁,而要 Bootloader 解锁,又要先开启 oem 解锁。不过,如果我的手机是某宝买的二手机,一代基本都是已经解 BL 锁了的。所以我这里直接跳过 oem 解锁与 Bootloader 解锁,有需要的朋友可以百度,我这里简单写下过程把,不一定保证能解锁成功(因为我没试过):

  1. 手机先退出谷歌账号,取消锁屏,指纹识别等
  2. 从手机设备中取出 sim 卡
  3. 开启开发者选项
  4. 开启 USB 调试
  5. 开启 oem 解锁(这个选项也在开发者选项中,但是需要科学上网)
  6. 手机连接至电脑,进入 Bootloader 模式(进入方式在上文有给出哈)
  7. 在 cmd 中输入 fastboot oem unlock 或者 fastboot flashing unlock
  8. Bootloader 解锁界面中,用音量键 +/- 控制光标,选择【Yes】并按下电源键进行 Bootloader 解锁
  9. 确认完毕后,稍作等待。通过 fastboot reboot 命令重启手机

成功解锁 Bootloader 后,每次手机启动时,都会出现黑底白字的英文警告页,提示 Your device software can’t be checked for corruption. Please lock the bootloader。这仅仅提示你 Bootloader 被解锁了,忽视即可。

2.6 刷机详解

刷原版系统需要进行后续的 root 以及其他操作的配置,学习 二、真机环境配置(root)三、真机环境配置(其他) 小节即可,我这里就刷自己定制的系统了。

刷定制好的刷机包,有脱壳、防止各种检测等功能。定制好的刷机包会经常更新,因此刷机需要熟练掌握。测试设备为pixel、pixel3的,不建议刷官方包,因为KernelSU目前不支持内核版本太低的,而Magisk的root方式会被检测 刷官方系统与aosp系统 ⇒ user、userdebug和eng。需要的话可以联系笔者。测试设备是其他设备的,需要自己去找对应的刷机包以及root,无法root的,建议换个谷歌系列的手机。

2.3 谷歌手机工厂镜像 中下载后的原版系统刷机包解压或者是定制系统刷机包解压,刷机包的组成如下图所示:
在这里插入图片描述
很明显我们进入的 bootloader 需要这玩意。bootloader-sailfish-8996-012001-1908071822.img 基带,image-sailfish-qp1a.191005.007.a3.zip 是安卓系统,有了前面的步骤的铺垫,刷机非常简单了。手机进入 bootloader 模式,Windows 系统双击 flash-all.bat,Linux、mac 系统运行 flash-all.sh 即可,我在 2.5 进入 Bootloader 模式 小节中已经进入了 bootloader 模式,并且我是 Windows,所以此刻我直接双击 flash-all.bat,如下图所示:
在这里插入图片描述
耐心等待几分钟即可,刷机完成如下图所示:
在这里插入图片描述
zip 压缩包中的 img 镜像有很多,其实有一些并不是必须要刷的,如果你编译过安卓系统就知道了 (以前大三的时候真的该好好学 Andriod 的,这里说明了一个道理,有备无患,不要觉得你所学习的知识没用,说不定未来的哪一天就能派上用场呢呢!)。同样的我们在魔改系统的时候,可以只单独刷其中几个修改过的 img 镜像。刷机相关命令:

// ① adb reboot(重启手机到系统) 和 adb reboot bootloader(重启手机到bootloader模式) ⇒ 这两个命令是在开机状态下
// ② fastboot reboot(重启手机到系统) 和 fastboot reboot bootloader(重启手机回到bootloader模式)
// ③ fastboot flash bootloader bootloader.img 往bootloader分区刷入bootloader镜像
// ④ fastboot flash radio radio.img 往radio分区刷入radio镜像
// ⑤ fastboot -w update image-sailfish-qp1a.191005.007.a3.zip
// ⑥ 单独刷某个分区镜像(分开刷要注意各分区镜像是否兼容)
    // 6.1 fastboot flash boot boot.img
    // 6.2 fastboot flash system system.img
    // ps:system.img与system_other.img是刷在不同分区的
    // 6.3 fastboot flash system_b system_other.img 看你此时处于什么分区,如果是在a分区,就要往b分区刷,反之同理,在b刷a
    // 6.4 fastboot flash vendor vendor.img
// ⑦ 批量刷某些分区 fastboot flashall -w 需要设置ANDROID_PRODUCT_OUT环境变量,指向镜像所在目录
// ⑧ fastboot set_active other 切换活动槽
// ⑨ fastboot --slot=other flash bootloader bootloader.img 往另外的分区刷bootloader
// ps:为了更大程度的防止黑砖,通常会将bootloader_a和bootloader_b都刷入对应的bootloader镜像
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

注意:分开刷,要注意各分区镜像是否兼容。上面的内容属于拓展,我们直接使用最简单的方式,双击flash-all.bat或者执行flash-all.sh即可。 刷机完成之后,按照上述方法进入开发者模式并且开启 USB 调试。

二、真机环境配置(root)

https://github.com/topjohnwu/Magisk/releases 下载软件包,如下图所示:
在这里插入图片描述
百度网盘下载地址:

链接:https://pan.baidu.com/s/1roHtYtN5yv0BBNtQyuBkOg 
提取码:vahm 
--来自百度网盘超级会员V9的分享
  • 1
  • 2
  • 3

使用 adb 安装 Magisk-v25.2.apk,如下图所示:
在这里插入图片描述
安装成功,在手机端查看,如下图所示:
在这里插入图片描述
单击 Magisk 图标打开软件,并点击安装(弹出框选择允许),如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将之前下载好的刷机包中的 image-sailfish-qp1a.191005.007.a3.zip 里面的 boot.img 拖到桌面,如下图所示:
在这里插入图片描述
将桌面的 boot.img 推送到手机的 sd 卡种,如下图所示:
命令:adb push C:\Users\AmoXiang\Desktop\boot.img /sdcard/
在这里插入图片描述
推送完成之后,手机中查看,如下图所示:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
拖出文件到桌面,如下图所示:
命令:adb pull /sdcard/Download/magisk_patched-25200_z3qMB.img
在这里插入图片描述
桌面查看,如下图所示:
在这里插入图片描述
手机再次进入 Bootloader 模式:adb reboot bootloader、fastboot devices、fastboot flash boot C:\Users\AmoXiang\Desktop\magisk_patched-25200_z3qMB.img,如下图所示:
在这里插入图片描述
然后重启手机即可。单击打开 Magisk 软件,如下所示:
在这里插入图片描述

在这里插入图片描述

控制台测试,如下图所示:
在这里插入图片描述

三、真机环境配置(其他)

3.1 调整时间

修改 boot 刷机以后,在设置里在调整下时间。时间不对,访问网络会出问题。目前时间,如下图所示:
在这里插入图片描述
连接 Wifi,访问百度,出现错误,如下图所示:
在这里插入图片描述
修正时间,如下图所示:
在这里插入图片描述
重新访问百度,如下图所示:
在这里插入图片描述
可以看到,修正时间之后,我们是可以正常上网了。

3.2 关闭 wifi 信号上的×

7.0 系统以后连接 wifi 会出现一个 ×(还老是说我连接受限), 这是由于原生安卓系统验证 wifi 是否有效,是去访问谷歌的服务器来进行判断的,如下图所示:
在这里插入图片描述
运行命令:adb shell settings put global captive_portal_mode 0,紧接着开启飞行模式,再关闭飞行模式即可解决!如下图所示:
在这里插入图片描述

3.3 停用设置向导

在这里插入图片描述
设置:
在这里插入图片描述
应用和通知:
在这里插入图片描述
查看全部 28 个应用:
在这里插入图片描述
显示系统程序:
在这里插入图片描述
Andriod 设置向导:
在这里插入图片描述
停用:
在这里插入图片描述
停用应用:
在这里插入图片描述
至此今天的学习就到此结束了,笔者在这里声明,笔者写文章只是为了学习交流,以及让更多学习安卓逆向的读者少走一些弯路,节省时间,并不用做其他用途,如有侵权,联系博主删除即可。感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!


在这里插入图片描述

    好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
    如果我的博客对你有帮助、如果你喜欢我的博客内容,请 点赞评论收藏 一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
 编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了 关注 我哦!

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/817496
推荐阅读
相关标签
  

闽ICP备14008679号