android获取ro._针对动态逆向工程攻击的Android应用保护方案(下)

对root权限进行检测本节会介绍对root权限进行检测的技术思路,这些思路我们都在上文中介绍过。就是基于这些方法,研究人员制作了一个具有root权限属性的检测表,并设计了几个函数(如上所示)来检测它们。在检测表中,研究人员将上文所讲过的第二种检测方法(检测已安装文件)细化为两项检测:检测su二进制文件和检测来自busybox的命令。研究人员并没有将上文所讲过的第七中检测方法(使用shel...
摘要由CSDN通过智能技术生成

e9aa53c1cdc33e9e16873d1c23ba20ae.gif

02cceec64a5c0f9c1bc24120d21fa4ce.png

对root权限进行检测

本节会介绍对root权限进行检测的技术思路,这些思路我们都在上文中介绍过。就是基于这些方法,研究人员制作了一个具有root权限属性的检测表,并设计了几个函数(如上所示)来检测它们。在检测表中,研究人员将上文所讲过的第二种检测方法(检测已安装文件)细化为两项检测:检测su二进制文件和检测来自busybox的命令。研究人员并没有将上文所讲过的第七中检测方法(使用shell命令检测root权限)包含在检测表中,因为该方法可以很容易被其他方法替代。研究人员使用的是开源软件实现的这些检测功能,检测表和函数的具体运行过程如下所示:

· detectTestKeys()会检测自定义镜像闪烁,它会reads /system/build.prop并检测ro.build.tags的值是否为“release-key”。如果没有,则假定设备具有root权限;

· checkForSystemProperties()检测系统属性的值,它会调用Runtime().exec(“getprop”)获取系统属性,然后检测ro.secure和ro.debuggable的值;

· checkForBinary ()会尝试查找安装的su二进制文件,它调用exist()

· 检测su二进制文件是否安装在类似/system/(x)bin, /data/local/(x)bin等中;

· checkForBusybox()会检测busybox提供的其他命令存在与否,它通过调用Runtime.exec()来执行find,tail和lsof等命令;

· checkForFilesystem()会检测文件系统属性,它会调用mount命令来检测任何只读文件系统是否具有“write”属性;

· detectRootManagementApps()会调用getPackageInfo()来获取已安装应用程序的列表,并将其与具有rooti权限相关的应用程序列表进行比较;

· detectRootProcess()会调用Runtime.exec(“ps”)获取当前正在运行的进程的列表,并使用root权限检测进程。如果这样的过程不是Zygote进程的子过程,则就假设设备是含有root权限的;

8b269198171fba50626d5506643ac42a.png

使用NetBeans动态调试Android应用程序

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值