180723 安卓-run-as命令

run-as命令

功能

以root身份运行命令,可以在未root的情况下查看某个(debug模式的)应用的内部信息(沙盒文件夹)

介绍

在没有root过的手机中,用户权限是无法查看很多信息的,包括各个应用的沙盒

而run-as就向开发者提供了未root情况下访问沙盒信息的权限

执行run-as + 包名,就可以直接以root权限进入该应用的沙盒中查看包括数据库、xml、各种信息文件

条件

应用需为debug模式,即AndroidManifest.xml文件中,android:debugable需要为true

原理

Linux系统下除了rwx三个基本权限以外,还有特殊的s(setuid)权限和g(setgid)权限
s权限可以使得低权限用户以该程序的所有者的权限去执行命令

在某些情况下可以提供极大的方便,例如普通用户想要修改密码或者一些关键程序,就可以通过root用户设定好的特定程序来在规则内修改本无法修改的文件

但是s权限也具有相当程度的危险性,当该程序存在漏洞,最坏的情况下具备任意代码执行的能力时,则说可以利用其提权,即普通用户可以通过它得到完全的root权限

回到正题
run-as程序正是通过s权限使得普通用户可以在满足条件(应用为debug模式时、操作目录仅在应用沙盒下)时具备root权限

延伸

除了提权以外,s权限还可以用来降权
root用户可以更改文件的拥有者,从而可以通过s权限任意更改程序执行时的权限
在安卓系统中,所有进程都是由zygote进程fork出来的,如果不降权的话则所有进程都与父进程相同、具备了root权限,这显然是不安全的。因此zygote通过forkAndSpecializeCommon函数来进行降权处理,使得子进程具备可控的权限

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值