首页 > 其他分享 >面具magisk原理是什么,为什么呢隐藏ROOT

面具magisk原理是什么,为什么呢隐藏ROOT

时间:2023-11-10 12:57:02浏览次数:36  
标签:Hide ROOT 修改 面具 magisk 应用 root 隐藏 Magisk

Magisk 是一个非常强大的 Android 框架,它允许用户获得超级用户权限(即 root)而不修改系统分区,从而实现了系统无修改(Systemless)的 root。这意味着它可以在不影响设备正常接收 OTA 更新的情况下进行 root,同时还可以使用一些通常会因检测到 root 权限而无法运行的应用。

Magisk 的面具(Magisk Hide)功能是 Magisk 的一个重要特性,它允许用户隐藏设备的 root 状态,避免被某些应用检测到。这些应用通常包括银行应用、支付应用、游戏和一些流媒体服务,它们会出于安全考虑检查设备是否被 root。

以下是 Magisk 隐藏 root 状态的一些核心原理:

  1. 系统无修改(Systemless): Magisk 通过挂载一个修改过的文件系统镜像到现有的文件系统上,而不是直接修改系统文件,这意味着系统分区保持不变。
  2. Magisk Manager: 这是一个伴随 Magisk 使用的应用,它允许用户安装、管理和卸载 Magisk 模块。Magisk Manager 也负责管理哪些应用可以看到 root。
  3. MagiskSU: 这是 Magisk 提供的 root 管理组件,它处理所有的超级用户权限请求。它可以配置成隐藏 root 状态。
  4. Zygote Forking: Android 系统通过一个名为 Zygote 的进程模板来启动所有应用。Magisk 在 Zygote 启动过程中介入,创建了一个修改过的进程环境,这些修改对于检查 root 状态的应用来说是不可见的。
  5. 名单/黑名单: 用户可以在 Magisk Manager 中选择特定的应用来隐藏 root。被选中的应用将无法检测到设备已经被 root。
  6. 修改属性: Magisk Hide 会修改设备的一些属性值,如 ro.build.tags(构建标签),ro.system.build.tags,和 ro.vendor.build.tags,它们通常会被用来检查设备是否被修改。
  7. 隐藏进程: Magisk Hide 也会尝试隐藏所有与 Magisk 相关的进程和文件,使得它们对那些检查 root 的应用来说是不可见的。

Google 的 SafetyNet 是一种安全机制,用于检测设备是否符合 Google 的安全标准和完整性。这通常会涉及检查设备是否被 root 或是否运行了未经认证的软件。如果一个设备没有通过 SafetyNet 检查,一些应用和服务可能会拒绝在该设备上运行,或者限制其功能。

Magisk Hide 试图欺骗 SafetyNet,使其认为设备没有被 root 或修改过。这是通过一系列复杂的手段完成的,包括但不限于:

  • 重置系统状态标记: Magisk Hide 可以修改系统状态标记,如 ro.boot.verifiedbootstate 和 ro.boot.flash.locked,来模拟一个未经修改的设备状态。
  • 隐藏 Magisk 文件和进程: Magisk Hide 会尝试隐藏所有与 Magisk 相关的文件和进程,让它们对于检测机制来说是不可见的。
  • 随机化 Magisk 组件名称: 通过随机化 Magisk 组件的名称(例如,Magisk Manager 的包名),Magisk Hide 使得自动化的检测脚本更难以发现它的存在。
  • 模拟原始引导镜像: 通过模拟一个未被修改的原始引导镜像,Magisk Hide 可以欺骗一些基于引导状态进行检查的机制。

Magisk Hide 的实现方式随着 Google 安全政策的更新而不断演进。为了对抗这些新的检测机制,Magisk 不断更新以保持其隐藏能力。然而,这是一个不断进行的猫鼠游戏,因为一旦 Google 更新了 SafetyNet 检测算法,Magisk 可能需要更新以适应新的检测方法。

总的来说,Magisk Hide 的目标是让 root 用户能够享受到正常的 Android 体验,同时还能使用那些通常会拒绝在 root 设备上运行的应用和服务。然而,使用这些类型的工具可能会违反某些应用的服务条款,并且可能会导致安全风险,因此用户需要谨慎使用。

作者:http://xkrj5.com 纯原创首发,转载保留版权!

 

标签:Hide,ROOT,修改,面具,magisk,应用,root,隐藏,Magisk
From: https://www.cnblogs.com/xkrj5/p/17823850.html

相关文章

  • 非root 用户安装perl模块
     001、perl配置RepeatModeler警告缺少perl模块如下:(base)[[email protected]]$perlconfigureThefollowingperlmodulesrequiredbyRepeatModeleraremissingfromyoursystem.Pleaseinstallthesefirst:File::WhichLWP::U......
  • Linux中不允许root用户直接ssh远程登录
    当我们在ubuntu中登录ssh的时候,会出现如下问题:是因为系统默认禁止root用户登录ssh,此时我们可以这样解决:1、首先,按Ctrl+C退出密码输入界面2、然后输入:su-(一定是su-,不是su)3、编辑sshd_config文件,我们输入:vi/etc/ssh/sshd_config出现如下文件编辑的界面,如下图:我们往下拖......
  • 迅为RK3588开发板编译Buildroot
    Buildroot是一款集成的编译集合包,解决了以前交叉编译麻烦的问题,本小节将介绍buildroot镜像的编译流程,分为单独编译和完整全自动编译。首先输入以下命令,选择buildroot系统的配置文件sourcebuildroot/build/envsetup.sh默认配置文件会覆盖掉rk3588_linux/buildroot/output/rock......
  • centos 扩展root根分区的大小
    目标:将VolGroup-lv_home缩小到125G,并将剩余的空间添加给VolGroup-lv_root 1.首先查看磁盘使用情况[root@localhost~]#df-h文件系统   容量 已用可用 已用%挂载点   Filesystem           Size UsedAvailUse%Mountedon/dev/mapper/vg_hostname-......
  • MySQL教程:如何更改mysql root密码
    要更改MySQL的root密码,你可以按照以下步骤进行操作:打开命令行终端或MySQL客户端工具。使用root用户登录到MySQL服务器。如果MySQL服务器已经在本地运行,并且你已经安装了MySQL客户端,则可以在终端中执行以下命令:mysql-uroot-p```系统将提示你输入密码。如果你之前没有设置过密......
  • 关于虚拟机下Redhat7版本root用户密码忘记的解决方法
    关于虚拟机下Redhat7版本root用户密码忘记的解决方法一、开机二、出现这个不用管,点取消(没有出现也是正常的)三、出现这个,键盘敲e进入编辑四、鼠标移动到最下,在UTF-8后,写rd.break,然后ctrl+x进入到下一个环节五、等待出现命令行六、按顺序敲如下命令:七、注意此时的命......
  • mysql添加非 root 级别用户
    进入mysql容器内部dockerexec-itCOMMAND/bash输入密码登录MySQL回车输入密码passwordroot@94c490e7da78:/#mysql-pEnterpassword:添加数据库先使用root用户添加数据库:--进入sql服务后首先查看有哪些数据库showdatabases;--若没有新建一个CREATEDATABASEdatabas......
  • CSS 中的 :root
    CSS中的:root:https://blog.csdn.net/weixin_51123974/article/details/122311909?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169873849916800192266666%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=1698738499168001922......
  • Android Studio中手机没有Root权限
    发现手机没有root看了好多解决办法都太复杂找到了一种简单解决办法在创建手机时选中X86那一选项,选择一个X86并且结尾为GoogleApls的手机然后在这个手机里运行就能切换为最高管理员后来又产生了另一个问题模拟器无法连接15:09*daemonnotrunning;startingnowattcp:50471......
  • MySQL报'Access denied for user 'root'@'localhost' (using password: NO)'
    当在命令提示符下执行该命令时,报下列错误[root@clvn]#mysqladmin-urootpassword"sorry"mysqladmin:connecttoserverat'localhost'failederror:'Accessdeniedforuser'root'@'localhost'(usingpassword:NO)'解决办法:[root@c......