(一) 序言
1.1什么是root
Root——也就是我们这里说的系统提权,通常是针对Android系统的手机而言,它使得用户可以获取Android操作系统的超级用户权限。root通常用于帮助用户越过手机制造商的限制,使得用户可以卸载手机制造商预装在手机中某些应用程序,以及运行一些需要超级用户权限的应用程序。Android系统的root与Apple
iOS系统的越狱类似。
1.2如何实现root
一般root有两种方式,一种是在recovery模式下刷入root包,另外一种就是利用系统层漏洞(应用层漏洞或内核漏洞)达到root提权目的,以下文章将简单介绍一下如何利用系统漏洞进行root提权。
关于root的效果,可以简单的分为两种:一种仅自身进程获得root权限;另外一种是自身程序和其它程序都能获取到root权限。
(二)基础知识
2.1文件权限
系统中文件的访问权限是通过用户ID(UID)和用户组ID(GID)来控制的。
每一个用户都分配有一个UID,然后所有的用户又按组来进划分,每一个用户组都分配有一个GID。注意,一个用户可以属于多个用户组。
Linux中的每一个文件都具有三种权限:Read、Write和Execute。这三种权限又按照用户属性划分为三组:Owner、Group和Other。
2.2进程UID
在 默认情况下,进程UID等于创建它的进程的UID,即父进程的UID。第一个进程是init进程,内核在启动完成后创建的,UID是root。其它进程,
都是直接由init进程,或间接由init进程的子进程来创建。在父进程在创建(fork)子进程之后,可