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

news2024/11/23 23:13:50

目录

  • 一、安卓逆向设备推荐
  • 二、真机环境配置(刷机基础教程)
    • 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 刷机包的分类

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

  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的分享

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镜像

注意:分开刷,要注意各分区镜像是否兼容。上面的内容属于拓展,我们直接使用最简单的方式,双击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 设置向导:
在这里插入图片描述
停用:
在这里插入图片描述
停用应用:
在这里插入图片描述
至此今天的学习就到此结束了,笔者在这里声明,笔者写文章只是为了学习交流,以及让更多学习安卓逆向的读者少走一些弯路,节省时间,并不用做其他用途,如有侵权,联系博主删除即可。感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!


在这里插入图片描述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1184285.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HBase基础编程

文章目录 HBase基础编程一、实验目标二、实验要求及注意事项三、实验内容及步骤 附:系列文章 HBase基础编程 一、实验目标 掌握如何通过HBase shell命令来设计HBase表结构实例,从而理解HBase的列式存储结构掌 握 java编程创建HBase表和删除HBase表。 …

新能源汽车高压线束是如何快速连接到测试设备上进行电性能测试的

快速连接形成稳定的电测试在新能源行业里面是很常见的测试场景,比如说在新能源汽车行业的电池包、电机、电控制器的电性能测试中会有很多高压线束,需要将这些线束和电池包、电控制器、电机与测试设备快速连接在一起进行相关的EOL/DCR测试。 新能源汽车高…

内网隧道搭建( 内网穿透)

一、使用代理工具 ew_for_win 1、环境准备: (1)一台双网卡虚拟机(作为跳板),能同时与攻击者主机和受害者主机通信: (2)一台攻击者主机: (3&…

【陈老板赠书活动 - 17期】- 她以亲身经历证明,程序员借助AI做副业可以有多成功!

陈老老老板🦸 👨‍💻本文专栏:赠书活动专栏(为大家争取的福利,免费送书) 👨‍💻本文简述:生活就像海洋,只有意志坚强的人,才能到达彼岸。 👨‍&am…

最新Next14 路由处理器 Route Handlers

四、使用Next路由处理程序 Next.js Route Handlers I. Next中路由处理程序是什么 ​ 路由处理程序是在用户访问站点路由时执行的功能。它们负责处理对定义的URL或路由的传入HTTP请求,以生成所需的数据。从本质上讲,当用户访问Next.js应用程序中的特定页…

全新智能后备保护器综合产品解决方案

SCB后备保护器是一种用于浪涌保护器(SPD)的专用外置脱离器,它可以有效地防止SPD因故障或短路而引起的火灾和设备损坏,同时保证SPD在雷电流冲击下不误动作,维持电气设备的防雷保护状态。地凯科技将介绍后备保护器的应用…

pycharm remote host显示nothing to show

远程服务器remote host右侧消失解决方法_dl_风禾的博客-CSDN博客文章浏览阅读727次。remote host打开方法https://blog.csdn.net/weixin_43959436/article/details/127818707?ops_request_misc%257B%2522request%255Fid%2522%253A%2522169940685316800197099235%2522%252C%252…

软件开发项目文档系列之十三如何撰写用户操作手册

目录 1 引言1.1 目的1.2 系统概述1.3 参考资料1.4 文档格式 2 系统运行环境2.1 系统硬件环境2.2 系统软件环境 3 系统设置说明3.1 公告发布3.2 角色管理3.3 通用管理 4 用户账户与访问说明4.1 注册与登录4.2 密码管理 5 数据管理说明5.1 数据导入与导出5.2 数据备份与还原 6 帮…

二维码智慧门牌管理系统升级解决方案:高效、安全、便捷

文章目录 前言一、用户管理二、菜单管理三、角色管理四、字典管理五、权限管理六、日志管理 前言 随着科技的不断发展,传统门牌管理系统已经无法满足现代管理的需求。为了提高管理效率,降低安全风险,并实现便捷的日志管理,二维码…

JAVA综合知识点总结-基础篇(4)

三十一、平时浏览的书籍..................................................................................... 三十二、java Exception体系结构......................................................................... 三十三、session和cookie的区别...........…

小白学爬虫:通过商品ID或商品链接封装接口获取淘宝商品销量数据接口|淘宝商品销量接口|淘宝月销量接口|淘宝总销量接口

淘宝商品销量接口是淘宝开放平台提供的一种API接口,通过该接口,商家可以获取到淘宝平台上的商品销量数据。使用淘宝商品销量接口的步骤如下: 1、在淘宝开放平台注册并创建应用,获取API Key和Secret Key等必要的信息。 2、根据淘宝…

可完美兼容迪文的串口屏?

如何让屏幕识别迪文协议,下面介绍淘晶驰USART HMI上位机用法 首先在工程输入0000-fffe 然后在program.s输入recmod2,在控件列表里就会刷新带有_vp的控件 带_vp的控件可以像迪文一样使用地址 导入字库,输入项目地址,根据通信协议来…

舞台灯光专用电机驱动及应用方案

舞台灯光的运用是舞台艺术中不可或缺的重要手段,达到突出重点、塑造人物形象、烘托环境气氛的目的;在舞台灯光的使用过程中,会对灯光的角度有较多的要求而步进电机具有较好的调节性;且控制方式更加灵活多样;能满足舞台…

配置阿里云镜像加速器 -docker

1.百度aliyun 2.找到镜像服务ACR 3.搞一个个人版,身份验证一下就行了很简单 4.找到镜像加速器Centos 5.在xshell执行下面4条命令:4条命令直接从上面操作文档中粘贴,不容易出错 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json…

企业如何选型iPaaS平台

企业数字化转型已是大势所趋,伴随着我国数字化转型改革的不断深入,加快推进企业数字化转型是新发展格局下实现经济高质量发展的必由之路。 企业在数字化转型过程中会搭建众多应用系统,以解决不同业务部门的需求。但系统之间如果互不连通&…

康其农业:西藏“高原红”苹果,成就世界屋脊的乡村振兴典范

金秋,阳光打在青藏高原,贡嘎山坡上的苹果树更显挺拔葱茏。清风拂过,一个个鲜红欲滴的苹果挂在枝叶之间,轻盈摇曳,像是在朝人们的味蕾招手。 康其农业集团董事长朱秋林抚摩着累累果实,笑容在双颊上绽开。 …

【慢SQL性能优化】 一条SQL的生命周期 | 京东物流技术团队

一、 一条简单SQL在MySQL执行过程 一张简单的图说明下,MySQL架构有哪些组件和组建间关系,接下来给大家用SQL语句分析 例如如下SQL语句 SELECT department_id FROM employee WHERE name Lucy AND age > 18 GROUP BY department_id其中name为索引&a…

C/C++轻量级并发TCP服务器框架Zinx-游戏服务器开发002:框架学习-按照三层结构模式重构测试代码+Tcp数据适配+时间轮定时器

文章目录 1 Zinx框架总览2 三层模式的分析3 三层重构原有的功能 - 头文件3.1 通道层Stdin和Stdout类3.1.2 StdInChannel3.1.2 StdOutChannel 3.2 协议层CmdCheck和CmdMsg类3.2.1 CmdCheck单例模式3.2.1.1 单例模式3.2.1.2 * 命令识别类向业务层不同类别做分发 3.2.2 CmdMsg自定…

传统库分表麻烦查询慢?TDengine 如何解决“搜狐基金”的应用难题

该项目需要实时展示国内基金的净值和收益(货币基金),在保证满足折线图展示的功能基础上,还需要加入统计排行、分页展示等功能,为用户提供最全面实时的查询服务。此前搜狐基金团队使用的 MySQL 数据库在面对海量数据时存…

linux粘滞位的介绍及使用

文章目录 1.粘滞位的引入2.粘滞位的使用 1.粘滞位的引入 首先看一个场景 已知 对目录无w权限时 无法进行目录中的文件的创建/删除操作但是普通用户通过sudo命令 以root身份创建一个文件 rw- r-- r-- 普通用户此时是other 没有w权限 但却可以删除 [root和普通用户在一个目录下时…