博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
root方式细节剖析
阅读量:6210 次
发布时间:2019-06-21

本文共 805 字,大约阅读时间需要 2 分钟。

android系统root的根本原理就是替换su程序。

su程序会设置SUID位,s验证root密码。正确的话su程序可以把用户权限提高root(因为去设置SUID位,运行期是root权限,这样其有权限提升自己的权限)

很早以前的提权方式:

提权方式一:busybox工具+ratc提权程序(rage aginst the cage)

adbd会检测系统的ro.secure属性,如果该属性为1则将会把自己的用户权限降级成shell用户。一般设备出厂的时候在/default.prop文件中都会设置 ro.secure = 1 这样将会使adbd启动的时候自动降级成shell用户。

1、出厂设置的ro.secure属性为1,则adbd也将运行在shell用户权限下;

2、adb工具创建的进程ratc也运行在shell用户权限下;

3、ratc一直创建子进程(ratc创建的子程序也 将会运行在shell用户权限下),紧接着子程序退出,形成僵尸进程,占用shell用户的进程资源,直到到达shell用户的进程数为 RLIMIT_NPROC的时候(包括adbd、ratc及其子程序),这是ratc将会创建子进程失败。这时候杀掉adbd,adbd进程因为是 Android系统服务,将会被Android系统自动重启,这时候ratc也在竞争产生子程序。在adbd程序执行上面setgid和setuid之 前,ratc已经创建了一个新的子进程,那么shell用户的进程限额已经达到,则adbd进程执行setgid和setuid将会失败。根据代码我们发 现失败之后adbd将会继续执行。这样adbd进程将会运行在root权限下面了。

改系统内核代码:insmod /data/data/xxx/xxx.ko装载内核文件

转载于:https://www.cnblogs.com/Tesi1a/p/7624085.html

你可能感兴趣的文章
第三章DOM
查看>>
读书笔记--SQL必知必会03--排序检索数据
查看>>
Python - 调试Python代码的方法
查看>>
活期储蓄账目管理系统
查看>>
C++程序设计(第2版)课后习题答案--第11章
查看>>
Ubuntu 12.04 安装设置gcc4.4
查看>>
爬虫笔记(十二)——浏览器伪装技术
查看>>
Kali渗透测试——利用metasploit攻击靶机WinXP SP1
查看>>
pytest自动化6:pytest.mark.parametrize装饰器--测试用例参数化
查看>>
BZOJ 2003 [Hnoi2010]Matrix 矩阵
查看>>
apply和call用法
查看>>
Hbase java api
查看>>
CentOS6.5安装配置
查看>>
[10.5模拟] dis
查看>>
修改JAVA代码,需要重启Tomcat的原因
查看>>
Mac下关于->您不能拷贝项目“”,因为它的名称太长或包括的字符在目的宗卷上无效。<-的删除...
查看>>
学习笔记之-------UIScrollView 基本用法 代理使用
查看>>
PHP array_count_values() 函数用于统计数组中所有值出现的次数。
查看>>
PHP笔记随笔
查看>>
php原生函数应用
查看>>