2024最新版Android逆向教程

您所在的位置:网站首页 安卓10对手机配置的要求 2024最新版Android逆向教程

2024最新版Android逆向教程

2024-07-02 19:46| 来源: 网络整理| 查看: 265

目录 一、安卓逆向设备推荐二、真机环境配置(刷机基础教程)2.1 刷机方式的分类2.2 刷机包的分类2.3 谷歌手机工厂镜像2.4 简单配置2.5 进入 Bootloader 模式2.6 刷机详解 二、真机环境配置(root)三、真机环境配置(其他)3.1 调整时间3.2 关闭 wifi 信号上的×3.3 停用设置向导

安卓是基于 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 刷机包的分类

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

线刷包/工厂镜像包(本文采用这种)卡刷包/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的分享 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 解锁,有需要的朋友可以百度,我这里简单写下过程把,不一定保证能解锁成功(因为我没试过):

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

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

二、真机环境配置(root)

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

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

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

在这里插入图片描述

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3