安卓手机root权限获取的工作原理是什么?

 我来答
求真实验室
2022-11-17 · 探索生活中的科学奥秘
求真实验室
太平洋电脑网是专业IT门户网站,为用户和经销商提供IT资讯和行情报价,涉及电脑,手机,数码产品,软件等。
向TA提问
展开全部

首先明白几点

1. su是一个elf可执行文件,superUser是用来和su配合的root授权管理软件。

2. 要执行su(其他程序获取root权限默认执行su)必须将su放在系统环境变量里,bin和xbin目录,其他地方你需要加全路径

3. bin和xbin目录在system分区,默认只读,所以要写入su必须重新挂在该分区为可写

知道这些再说如何root

1. 通过漏洞将自己进程提权到root权限,具体做法要去了解漏洞利用原理

2. 进程获取root权限后重新挂载system分区可读写

3. 然后将su拷贝到bin目录或者xbin目录,由于su的所有者提权进程已经是root进程,所以su也具有root属性。然后设置su文件755属性,即所有者可读可写可执行,所在组和其他用户可读可执行,同时为了让一般用户在执行某些程序的时候,能够暂时具有该程序拥有者的权限,所以需要设置s标志位,即其他评论提到的chmod 4755 su,superuser拷贝system目录并安装,放在system目录下作为系统应用,防用户删除

4. 这样其他程序调用su以后,先要经过superuser同意,用户点同意后,由于su拥有者为root所以其进程也拥有root权限,相应的它执行的命令也都是有root权限, 详细的做法可去github搜su源码阅读,最后执行的一句`execv(ctx->to.shell, ctx->to.argv + argc);`通过验证后将su进程直接替换成需要执行的命令

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式