• Android逆向第一步之开启root权限


    Android逆向第一步之开启root权限

    在这里插入图片描述

    前言

    最近看了一些Frida相关的文章,自己也想实际手动来几个逆向操作_

    恰巧手头有一款小米8的Android手机(PS:听说是最容易能拿到Root权限的国产机),想着用个把小时搞一下。没到想看了很多文章最终还是搞了一下午。

    没有一篇文章能让我完完整整的操作下,此刻趟的坑的心情复杂至极,留一片文章淡化一下~!

    最后说一下root权限和电脑上的管理权限意向,软件获得root权限后,理论上讲可以在手机已安装的软件的权限范围内进行任何操作,记住是任何操作。不要轻易授予应用软件root权限。

    环境

    开发环境:小米8一台,win10笔记本电脑,数据线(typeC接口);
    PS:手机设备一定需要注意好是款机型,不同的型号刷机下载的刷机镜像文件是不同的(我自己就下载了3个刷机包才找到满意的)。

    小米8的刷机和root流程

    解锁Bootloader

    这一步操作和网上大部分文章均不太相同;

    小米官方提供了解锁功能。先到这个网址 http://www.miui.com/unlock/index.html 申请解锁,下载解锁工具按照上面的步骤解锁即可(PS:听说其他厂商是不支持解锁BootLoader这一项功能)。

    在这里插入图片描述

    PS:目前该网站无法下载解锁工具,点击结果工具下载无反应,换了两台设备均点击无反应。

    自己从别的渠道得到的结果工具,下载链接在文章下方。

    检查小米手机的设备锁状态
    1. 手机MIUI联系点击3次打开开发者选项;
    2. 在开发者选项中打开设备解锁状态,显示已解锁(PS:此处要你绑定小米帐号,绑定完点击下方按钮即可,注意这里要求装SIM卡,不能用WIFI网络));

    在这里插入图片描述

    PS:网上说的需要进行资格审核什么的,我都没有遇到,哈哈哈

    解锁Bootloader时,手机将会恢复出厂设置,所有的资料都会丢失,所以请提前做好备份。

    准备开始解锁Bootloader的话,先关闭手机,之后同时按住开机键和音量下键开机,此时会进入fastboot界面,小米手机的屏幕上会出现一只兔子。在该界面下,我们可以直接安装系统固件。

    首先点击下载好的软件包中的MiUsbDriver.exe,安装安卓相关驱动。然后用USB线连接设备,自动安装相关驱动。

    然后点击miflash_unlock.exe,开启解锁软件,登录小米账户,一路确认点下去,重置系统,成功解锁Bootloader

    有可能会遇到在进入fastboot界面出现小兔子之后,一插USB数据线直接黑屏并提示press any key to shutdown

    解决办法:更换电脑 USB 2.0 端口连接便可解决。如果电脑没有 USB 2.0 端口,也可以使用 USB 集线器连接。

    如果都没有,可以将下面内容用记事本另存为 xxx.bat 批处理文件,然后以管理员身份运行,之后再连接便不会有问题。

    @echo off
    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\18D1D00D0100" /v "osvc" /t REG_BINARY /d "0000" /f
    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\18D1D00D0100" /v "SkipContainerIdQuery" /t REG_BINARY /d "01000000" /f
    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags\18D1D00D0100" /v "SkipBOSDescriptorQuery" /t REG_BINARY /d "01000000" /f
    pause
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    运行miflash_unlock.exe之后会提供登录小米账号,按照提示进行操作就行。

    在这里插入图片描述

    成功解锁Bootloader

    MiFlash线刷开发者版本系统

    1. 下载小米的线刷软件MiFlash2019-12-06-0.zip
    2. 在网上查找对应手机所需开发者版本的线刷包并下载xiaomirom

    第二部尤其需要注意,有些是从论坛帖子中获取的线刷包【大咖说】MIUI刷机说明帖。这个的确可以刷成功,但是刷完之后没有Root权限

    还有一些奇兔Root工具等都可以下载有Root权限的小米系统,但有费用的收取。

    我自己是是在xiaomirom上下载的有Root权限的开发者版本的系统镜像(PS:下载了两次,第一次刷机完没有Root权限)。
    在这里插入图片描述

    将下载好的镜像文件进行解压,然后运行MiFlash程序。

    在这里插入图片描述

    1. 选择解压好的镜像文件路径;
    2. 数据线链接手机,加载设备(首先同时按住开机键和音量下键开机,进入fastboot界面),等待下面列表设置名称出来后再执行下一步;
    3. 点击刷机

    可能会出现error: Missmatching image and device errorerror: FAILED (remote: Erase is not allowed in Lock State)错误;

    第一个错误需要是机型与ROM不匹配,第二个错误可采用以下办法解决:

    1. 解除 BL 设备锁,小米线刷需要先完成 BL 解锁
    2. 如果之前线刷不成功,由于线刷默认上了 BL 锁,可尝试直接进入 fastboot 模式重新解锁
    3. 如果因为某些原因手机退出了小米帐号,又无法进入系统,这种情况只能送小米售后强刷

    其他错误可以参考小米线刷报错问题及解决方法

    开启Root权限

    依次点击步骤:手机管家 - 应用管理 - 权限 - ROOT权限管理,最后会有一个确认和下载文件的过程。

    在这里插入图片描述

    • 没有Root权限时候的adb命令
    ➜ ~ adb shell
    dipper:/ $ cd data
    dipper:/data $ ls
    ls: .: Permission denied
    
    • 1
    • 2
    • 3
    • 4
    • 有root权限时候的adb命令
    ➜ ~ adb shell
    dipper:/ $ su
    :/ # cd data
    cd data
    :/data # ls
    ls
    adb           bootchart    media    ota            system_de
    anr           cache        mediadrm ota_package    tombstones
    app           dalvik-cache misc     property       unencrypted
    app-asec      data         misc_ce  resource-cache user
    app-ephemeral dpm          misc_de  sdcard         user_de
    app-lib       drm          miui     ss             vendor
    app-private   local        mqsas    system         vendor_ce
    backup        lost+found   nfc      system_ce      vendor_de
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    附件

    MiFlash_v3.14.0.rar:
    链接: https://pan.baidu.com/s/1yEO_oKhfxA3FHO8Oev1Fbg 提取码: 5mw9

    miflash_unlock-6.5.406.31.zip
    链接: https://pan.baidu.com/s/1AQgXWTai05Cfv-eQabZOvQ 提取码: mji6

    想阅读作者的更多文章,可以查看我 个人博客 和公共号:
    振兴书城

  • 相关阅读:
    langchain:Prompt在手,天下我有
    码蹄集 - MT2065 - 整数大小比较
    面试必问的分布式锁,你懂了吗?
    python遗传算法(应用篇1)--求解一元函数极值
    linux 里面卸载jdk
    LIO-SAM 详读代码笔记--2.imuPreintegration
    【微服务部署】一、使用docker-compose部署Jenkins、SonarQube、PostgreSQL
    Python集成学习和随机森林算法
    随机数算法,SQL
    前端项目--尚医通学习分享
  • 原文地址:https://blog.csdn.net/stven_king/article/details/126431457