• 【转】Root检测与反检测


    0x00背景
    需要在手机上构建一个环境对root过的设备进行伪装,让设备里面的应用将该设备当成未root的设备。
    1
    0x01 Root检测手段
    1.检查已安装的APK包:
    SuperSU应用程序或者一键root的程序:
    (例如One Click Root,iRoot,360一键root,kingroot)
    Root Apps:需要root权限才能使用其功能的应用程序。例如busybox,SetCPU,Titanium Backup。
    Root Cloakers:隐藏设备是否已植根的应用程序。例如Root Cloaker,Root Cloaker Plus。
    API挂钩框架:提供API挂钩功能的库。例如Cydia Substrate,Xpose Framework。

    2.检查已安装的文件:
    静态路径:
    / system / xbin / su,/ system / bin / su或/system/xbin/…/xbin/su(路径操作)
    / system / xbin / busybox以及BusyBox创建的命令的所有符号链接。
    在生根期间或生根后安装的热门应用程序包的/ data / app / 或/ system / app / 。
    动态路径:解析PATH变量,在每个条目后附加“/ su”; 在循环中打开每一个
    检查BUILD标签:来自Google的股票Android图像是使用“release-keys”标签构建的。如果出现“ 测试密钥”,这可能意味着Android映像是开发人员构建或非官方构建。该值基本上来自“ro.build.tags”。

    3.检查目录权限:
    Root使某些根文件夹可读,如/ data或可写,如/ etc,/ system / xbin,/ system,/ proc,/ vendor / bin等。运行mount命令并检查是否有任何设备使用“rw”挂载标记,或尝试在“/ system”或“/ data”文件夹下创建文件。
    尝试使用命令“ mount -o remount,rw / system ” 挂载“/ system”分区,并检查返回码。
    C heck流程/服务/任务:
    ActivityManager.getRunningAppProcesses方法返回当前正在运行的应用程序进程的列表。此API可用于确定是否有任何需要root权限的应用程序正在运行。
    getRunningServices或getRunningTasks:获取当前正在运行的服务或任务。
    使用Shell命令检查生根特征:使用Runtime.exec,ProcessBuilder或execve(“su”)

    ps | grep :列出当前正在运行的进程。
    ls - :检查文件系统中是否存在文件
    包列表:
    pm path :输出目标包的完整路径
    cat /system/build.prop或grep ro.build.tags:检查是否= release-keys。该测试仅可用作指标,因为在野外存在许多相反的观察结果。
    构建版本:“ ro.modversion ”可用于识别某些自定义Android ROM(例如CyanogenMod)

    4.检查系统属性:
    ro.secure = 0,表示adb shell将以root用户身份运行,而不是shell用户。
    ro.debuggable = 1或service.adb.root = 1,然后adb也将以root身份运行。
    毋庸置疑,这些技术可以通过功能挂钩或自定义构建Android ROM等来绕过。

    开源的rootbeer就是用来查看是否运行在root环境
    https://github.com/scottyab/rootbeer/blob/master/README.md

    0x02 root反检测手段
    原理:hook调用api的函数


    开源的RootCloak用来对抗root监测
    https://github.com/devadvance/rootcloak

    参考:
    https://www.blackhat.com/docs/eu-15/materials/eu-15-Benameur-All-Your-Root-Checks-Are-Belong-To-Us-The-Sad-State-Of-Root-Detection.pdf

    Detecting Root on Android

    https://blog.csdn.net/lintax/article/details/70988565
    from:https://blog.csdn.net/tangsilian/article/details/85255929

  • 相关阅读:
    【ProjectT】Tapestry
    【ProjectT】Tapestry • Quick Start • Hello World
    【ProjectT】《Pragmatic Version Control Using CVS》【Chapter 2】
    【Notes】《Thinking in Java》【Chapter 11】Part II
    【ProjectT】《Pragmatic Version Control Using CVS》【Chapter 1】
    【ProjectT】Tapestry • Quick Start • DirectLink
    【ProjectT】Pragmatic Version Control Using CVS
    【Notes】《Thinking in Java》【Chapter 11】
    【ProjectT】Tapestry • Quick Start • Forms
    【ProjectT】Tapestry • Quick Start • Introduction
  • 原文地址:https://www.cnblogs.com/xuan52rock/p/11396039.html
Copyright © 2020-2023  润新知