首先关于Root的方式,这里不做详解,可以有很多漏洞,比如利用uid溢出后归为0,得到Root权限,然后操作文件系统等。
手机Root后,最重要的是,给手机安装了su程序和superuser apk。 su一般被安装在/system/xbin 或者 /system/bin 下面,su文件的权限如下:
# ls su -l
ls su -l
-rwsr-sr-x 1 root root 26336 Aug 1 2008 su
ls su -l
-rwsr-sr-x 1 root root 26336 Aug 1 2008 su
这里可以看到,su的Owner和Group分别为Root,Root。 Other用户具有exeute权限,另外,su设置了suid和sgid,这个非常重要,后面会详述,这个使得Su进程可以提升自身的EUID。
我们这里以RootExplorer为例,看是如何申请和提升权限的:
首先,ps一下,可以看到root explorer的信息,这里第一列是UID,更加准确的,应该是EUID。
app_73 1143 103 301620 39944 ffffffff 400194c4 S com.speedsoftware.rootexp
lorer
lorer
这里可以看到,Root Explorer的EUID=10073(App Base是从10000开始的)

本文详细探讨了Android手机如何通过`su`命令获取Root权限。`su`进程利用SUID特性提升EUID至ROOT,通过启动SuperUser请求用户授权。在获得许可后,`su`不仅提升自己的EUID,还会提升Real UID以确保后续进程以ROOT权限运行。通过`execv`加载`sh`,在同一个进程中执行shell命令,从而实现Root权限的操作。RootExplorer等应用就是通过这种方式执行需要Root权限的shell指令。
最低0.47元/天 解锁文章
2153

被折叠的 条评论
为什么被折叠?



