android系统root与应用程序获取root权限原理总结

首先root一词来源于linux系统,linux系统不像XP系统它的权限管理分明。如果有root权限就获取了系统的最高权限能做几乎一切事情,而通常在android系统中厂商是不允许root的。但是还是有好多发烧友想要获取root权限,这样就寻找系统的各种漏洞来获取root。下面我用最简单的语言来分析:

系统如何获取root权限;

系统已经root后应用程序如何获取root权限。

                                                                                                    系统如何获取root权限


   如果系统想要获取root权限,那必须了解adb工具,也就是android调试桥工具,通过它可以操作系统。他的权限决定这系统的权限。它的权限决定这系统的权限,首先他是sdk下的adb工具,而在设备端有adbd服务在后台运行,adbd的权限同时决定着adb的权限,adbd的源码在system/core/adb下,最重要的语句是setgid(AID_SHELL);  setuid(AID_SHELL); adbd在运行这两句代码之前都是root权限的,而运行他后讲的为shell权限了。好,问题就出现这这里,linux系统中有用户进程数是有限定的,也就是有数目的,如果超过此数目,则在调用这个语句,就会发生错误,而问题是发生错误的时候,代码并未做任何处理,没有去检测返回值,从而导致了这样一个漏洞利用。程序可以不断的fork()进程,也就是新建进程,直到shell用户的极限。然后结束掉系统的adb进程,因为结束了一个,就少了一个,所以立刻在fork一个处理,又达到了极限,因为系统会在一定时间里检测系统是否有adb进程,如果没有则会建立一个,这样当系统建立一个adb进程后,去调用setgid(AID_SHELL);  setuid(AID_SHELL)两句时其实已经发生了错误,但是代码并没有处理,继续完好无损的运行adb进程。所以这个adb的系统进程就一直以root身份运行啦。。。。本总结来源于:

http://www.cnblogs.com/xiaoxiaoboke/archive/2012/02/13/2349723.html 

Android系统root破解原理分析(续)

http://blog.claudxiao.net/2011/04/android-adb-setuid/

Android adb setuid提权漏洞的分析

                                                                                             系统已经root后应用程序如何获取root权限

 

系统root了,不代表应邀程序都能获取root权限的,系统root了,adb进程具有root权限了,可以放肆的操作系统文件啦,而应用程序获取root的权限的秘诀在于su程序中,破解Root权限的原理就是在手机的/system/bin/或/system/xbin/目录下放置一个可执行文件“su”,这是一个二进制文件,而在android源码中表示,只有root和shell可以运行su程序,而其他程序是没有权限的。只要吧这个权限拿掉,那么就可以破解root啦。而替换SU程序,对已已经root的手机就变得简单多了,具体参考:http://www.cnblogs.com/xiaoxiaoboke/archive/2012/02/13/2349719.html

  现在大家了解root的原理了吧,好多工具都是利用了上述漏洞原理获取的root权限。例如z4root。其实root无非是利用各种各样的漏洞,但是现在的趋势来看root也越来越阳光化了,root是个后门。把这个后门打开供用户自由选择。

 

另外笔者在提供一些其他此方面的参考链接:

http://blog.sina.com.cn/s/blog_456baf5e01013rnx.html

关于Android的Root有感

http://bbs.anzhi.com/archiver/?tid-4884866.html 

七种root方法总有一款适合你

http://blog.sina.com.cn/s/blog_75739773010171tm.html

Android手机Root授权原理细节全解析

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值