android root检测原理&wechat root检测

7,459 阅读2分钟


root 检测原理


  1. 已经root设备,会增加一些特殊包或文件,所以可以通过检测这些包(如Superuser.apk、检测su命令)、activity、文件是否存在来判断。
  2. app检测是否可以执行在root下才能运行的命令。
  3. 检测busybox工具是否存在,关于busybox的知识google上一大堆,简单的说BusyBox
    是很多标准 Linux 工具的一个单个可执行实现。BusyBox
    包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大、更复杂的工具,例如 grep、find、moun)
  4. 运行su命令
  5. 检测Android 沙盒目录文件或文件夹读取权限(在Android系统中,有些目录是普通用户不能访问的,例如 /data、/system、/etc 等;比如微信沙盒目录下的文件或文件夹权限是否正常)


分析环境

小米手机刷机系统

adb环境

顶部Activity


打开root权限的步骤

设置/授权管理/root权限管理


查看手机的授权管理(主要是包名)




检测无需root权限

查看进程信息

ls -l /system/app |grep permcenter



查看是否有安卓root的apk

 pm list packages |grep permcenter



当然还有就是查看com.xxx.xxxx包下是否有XXXActivity

adb shell dumpsys activity top



android 代码解析apk的常用包是net.dongliu:apk-parser:2.2.0

https://mvnrepository.com/artifact/net.dongliu.apk-parser


检测busybox

xposed内携带有busybox



BusyBox是一个不简单的应用中,它的可执行二进制,按说应该被定位在系统/system/xbin表示。安装正确的BusyBox的二进制拷贝包括并创建符号链接。

# busybox pwd

cd /system/xbin
ls -l busybox



busybox top




检测su

cd  /system/xbin
ls -l su








用which命令查看是否有su 和busybox命令

$ which su
#与
$ which busybox





wechat root检测

在root授权管理没有看到过wechat的授权请求,可以认为微信不会主动去尝试获取root权限,也即不会直接运行 “su”命令


在wechat代码种有对系统path环境下的su文件进行检查,有代码为证


第一个位置


第2个位置




一行代码检测XP/调试/多开/模拟器/root github开源地址:https://github.com/lamster2018/EasyProtector