edit_note帖子
21
stars积分
8,130
event加入
2012-03-10
安卓交流
安卓高级教程之root原理一
schedule发表于 2013-05-01 13:44:00
visibility查看 791
chat_bubble回复 41
#1 楼主
首先,说一下,不知道能不能上传图,代码就不打了,字也不知道能发多少,给那些一直root失败的童鞋一些知识补充。
现在Android系统的root破解基本上成为大家的必备技能!网上也有很多中一键破解的软件,使root破解越来越容易。但是你思考过root破解的 原理吗?root破解的本质是什么呢?难道是利用了Linux kernal的漏洞吗?本文将简单对root的破解原理进行分析。
网上有一篇文章已经对root破解的基本原理进行了简单介绍,大家可以先参考一下《 android root权限破解分析 》,本文只能说对root原理进行了方向性的描述,但是在一些具体的方面没有描述清楚。本文将会对其进行一些必要的扩展和补充。
如果你进行过程序开发,在root过的手机上面获得root权限的代码如下:
1: Process process = Runtime.getRuntime().*( “su“);
2: DataOutputStream os = new
DataOutputStream(process.getOutputStream());
3: ......
4: os.writeBytes( “exit\n“ );
5: os.flush();
从上面代码我们可以看到首先要运行su程序,其实root的秘密都在su程序中,《 android root权限破解分析 》中讲到Android系统默认的su程序只能root和shell可以用运行su,这个是安全的。如果把这个限制拿掉,就是root破解了!
下面我们仔细分析一下程序是怎样获得root权限的,如果对Linux的su命令熟悉的朋友可能知道su程序都设置SUID位,我们查看一下我的手机(已经root破解)上的su权限设置,
我们发现su的所有者和所有组都是root,是其实是busybox的软链接,我们查看busybox的属性发现,其设置了SUID和SGID,并且所有者和所有组都是root。SUID和SGID的作用是什么呢?如果你不太清楚,请参考《 Linux进程的实际用户ID和有效用户ID 》,这样运行busybox的普通用户,busybox运行过程中获得的是root的有效用户。su程序则是把自己启动一个新的程序,并把自己权限提升至root(我们前面提到su其实就是busybox,运行期它的权限是root,当然也有权限来提升自己的权限)。
再强调一下不光root手机上su需要设置SUID,所有的Linux系统上的su程序都需要设置SUID位。请参考一下UC服务器的su的权限情况:
我们发现su也设置了SUID位,这样普通用户也可以运行su程序,su程序会验证root密码,如果正确su程序可以把用户权限提高的root(因为其设置SUID位,运行期是root权限,这样其有权限提升自己的权限)。
这样我们就可以看出其实Android系统的破解的根本原理就是替换掉系统中的su程序,因为系统中的默认su程序需要验证实际用户权限(只有root和 shell用户才有权运行系统默认的su程序,其他用户运行都会返回错误)。而破解后的su将不检查实际用户权限,这样普通的用户也将可以运行su程序, 也可以通过su程序将自己的权限提升。
到这里大家对root破解不感到神秘了吧。root破解没有利用什么Linux内核漏洞(Linux内核不可能有这么大的漏洞存在),可以理解成root 破解就是在你系统中植入“木马su”,说它是“木马”一点儿都不为过,假如恶意程序在系统中运行也可以通过su来提升自己的权限的这样的结果将会是灾难性 的。所以一般情况下root过手机都会有一个SuperUser应用程序来让用户管理允许谁获得root权限,也算是给系统加了一层保险吧!
如上是哀的个人对root破解的一些认识,如果有错误的地方,欢迎朋友们指正。
现在Android系统的root破解基本上成为大家的必备技能!网上也有很多中一键破解的软件,使root破解越来越容易。但是你思考过root破解的 原理吗?root破解的本质是什么呢?难道是利用了Linux kernal的漏洞吗?本文将简单对root的破解原理进行分析。
网上有一篇文章已经对root破解的基本原理进行了简单介绍,大家可以先参考一下《 android root权限破解分析 》,本文只能说对root原理进行了方向性的描述,但是在一些具体的方面没有描述清楚。本文将会对其进行一些必要的扩展和补充。
如果你进行过程序开发,在root过的手机上面获得root权限的代码如下:
1: Process process = Runtime.getRuntime().*( “su“);
2: DataOutputStream os = new
DataOutputStream(process.getOutputStream());
3: ......
4: os.writeBytes( “exit\n“ );
5: os.flush();
从上面代码我们可以看到首先要运行su程序,其实root的秘密都在su程序中,《 android root权限破解分析 》中讲到Android系统默认的su程序只能root和shell可以用运行su,这个是安全的。如果把这个限制拿掉,就是root破解了!
下面我们仔细分析一下程序是怎样获得root权限的,如果对Linux的su命令熟悉的朋友可能知道su程序都设置SUID位,我们查看一下我的手机(已经root破解)上的su权限设置,
我们发现su的所有者和所有组都是root,是其实是busybox的软链接,我们查看busybox的属性发现,其设置了SUID和SGID,并且所有者和所有组都是root。SUID和SGID的作用是什么呢?如果你不太清楚,请参考《 Linux进程的实际用户ID和有效用户ID 》,这样运行busybox的普通用户,busybox运行过程中获得的是root的有效用户。su程序则是把自己启动一个新的程序,并把自己权限提升至root(我们前面提到su其实就是busybox,运行期它的权限是root,当然也有权限来提升自己的权限)。
再强调一下不光root手机上su需要设置SUID,所有的Linux系统上的su程序都需要设置SUID位。请参考一下UC服务器的su的权限情况:
我们发现su也设置了SUID位,这样普通用户也可以运行su程序,su程序会验证root密码,如果正确su程序可以把用户权限提高的root(因为其设置SUID位,运行期是root权限,这样其有权限提升自己的权限)。
这样我们就可以看出其实Android系统的破解的根本原理就是替换掉系统中的su程序,因为系统中的默认su程序需要验证实际用户权限(只有root和 shell用户才有权运行系统默认的su程序,其他用户运行都会返回错误)。而破解后的su将不检查实际用户权限,这样普通的用户也将可以运行su程序, 也可以通过su程序将自己的权限提升。
到这里大家对root破解不感到神秘了吧。root破解没有利用什么Linux内核漏洞(Linux内核不可能有这么大的漏洞存在),可以理解成root 破解就是在你系统中植入“木马su”,说它是“木马”一点儿都不为过,假如恶意程序在系统中运行也可以通过su来提升自己的权限的这样的结果将会是灾难性 的。所以一般情况下root过手机都会有一个SuperUser应用程序来让用户管理允许谁获得root权限,也算是给系统加了一层保险吧!
如上是哀的个人对root破解的一些认识,如果有错误的地方,欢迎朋友们指正。
全部回复 (41)
2013-05-01 14:06:00
沙发
这帖不错,该顶
2013-05-01 16:55:00
板凳
你牛,我顶!
2013-05-01 16:56:00
地板
祝安卓论坛越来越好!
2013-05-01 20:15:00
#5
看帖回帖是美德!兔兔
2013-05-01 22:18:00
#6
你牛,我顶!
2013-05-01 22:23:00
#7
看帖回帖是美德!
2013-05-03 14:44:00
#8
祝安卓论坛越来越好!
2013-05-03 15:57:00
#9
祝安卓论坛越来越好!
2013-05-05 12:56:00
#10
祝安卓论坛越来越好!
2013-05-05 19:12:00
#11
这帖不错,该顶
2013-05-09 13:03:00
#12
你牛,我顶!
2013-05-13 21:43:00
#13
安卓问题、内信69344
2013-05-13 21:43:00
#14
安卓问题、内信69344、
2013-05-27 00:20:00
#15
安卓的世界,我的世界全国包二奶大 奖赛已经决出胜负,九项冠军得主分别是 : 1.数量奖:江苏省建设厅长徐其耀,共 有情妇146位。 2.素质奖:重庆市委宣传 部长张宗海 ,常年在五星级酒店包养漂亮 未婚本科女大学生17人。 3.学术奖:海南 省纺织局长李庆善,性日记9 5本,标本236 份。 4.青春奖:四川乐山市长李玉书,20 个情人年龄都是16到18岁。 5.管理奖:安 徽省宣城市书记杨枫,用知识管理,有效管 理77名情人。 6.挥金奖:深圳市沙井银行 行长邓宝驹,仅“五奶小青“,800天花了184 0万元,平均每天23万元,每小时1 000元。 7、团结奖:福建省周宁县委书记林龙飞, 为其22名情人共办群芳宴,并设30万元的佳 丽奖。 8.和谐奖 :海南省临高市城管大队 长邓善红,有6个情人,6个孩子,对此原配 夫人根本不信。 9.干劲奖:湖南省通信局 局长曾国华,面对5位情人立誓:保证到60 岁时,每人每周性生活不少于3次 请在好友 里转发,感谢我们的党为我国培养出大批人 才。 这个世界就是,不吸烟的得肺癌,不 工作的做老板,不爱国的当大官;真正的爱 不能要,真正的事不能干,真正的人不能做 ;需要书的读不起,需要房的买不
2013-05-27 05:40:00
#16
安卓问题、内信81484
2013-05-27 07:25:00
#17
安卓问题、内信1111
2013-05-28 06:32:00
#18
安卓的世界,我的世界
2013-05-30 01:57:00
#19
安卓问题、内信50590
2013-06-04 19:03:00
#20
安卓问题、内信53331
2013-06-09 06:51:00
#21
嗯嗯
登录 后才能回复
flag举报帖子