【转】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
【转】Root检测与反检测的更多相关文章
- unity3d 赛车游戏——复位点检测优化、反向检测、圈数检测、赛道长度计算
接着上一篇文章说 因为代码简短且思路简单 所以我就把这几个功能汇总为一篇文章 因为我之前就是做游戏外挂的 经过验证核实,**飞车的复位点检测.圈数检测就是以下的方法实现的 至于反向检测和赛道长度计算, ...
- OPENCV图像特征点检测与FAST检测算法
前面描述角点检测的时候说到,角点其实也是一种图像特征点,对于一张图像来说,特征点分为三种形式包括边缘,焦点和斑点,在OPENCV中,加上角点检测,总共提供了以下的图像特征点检测方法 FAST SURF ...
- 离群点检测与序列数据异常检测以及异常检测大杀器-iForest
1. 异常检测简介 异常检测,它的任务是发现与大部分其他对象不同的对象,我们称为异常对象.异常检测算法已经广泛应用于电信.互联网和信用卡的诈骗检测.贷款审批.电子商务.网络入侵和天气预报等领域.这些异 ...
- kaggle信用卡欺诈看异常检测算法——无监督的方法包括: 基于统计的技术,如BACON *离群检测 多变量异常值检测 基于聚类的技术;监督方法: 神经网络 SVM 逻辑回归
使用google翻译自:https://software.seek.intel.com/dealing-with-outliers 数据分析中的一项具有挑战性但非常重要的任务是处理异常值.我们通常将异 ...
- JavaScript浏览器检测之客户端检测
客户端检测一共分为三种,分别为:能力检测.怪癖检测和用户代理检测,通过这三种检测方案,我们可以充分的了解当前浏览器所处系统.所支持的语法.所具有的特殊性能. 一.能力检测: 能力检测又称作为特性检测, ...
- 人脸检测的harr检测函数
眼球追踪需要对人脸进行识别,然后再对人眼进行识别,判断人眼张合度,进而判断疲劳... 解析:人脸检测的harr检测函数使用方法 代码理解: 利用训练集,检测出脸部,画出框 void CAviTestD ...
- 24V低压检测电路 - 低压检测电压(转)
24V低压检测电路 - 低压检测电压 参考: ADC采样工作原理详解 使用单片机的ADC采集电阻的分压 问题: 当ADC采集两个电阻分压后的电压的时候,ADC转换出来的电压值和万用表量出来的不一样差异 ...
- 目标检测之单步检测(Single Shot detectors)
目标检测之单步检测(Single Shot detectors) 前言 像RCNN,fast RCNN,faster RCNN,这类检测方法都需要先通过一些方法得到候选区域,然后对这些候选区使用高质量 ...
- 带你读AI论文丨用于目标检测的高斯检测框与ProbIoU
摘要:本文解读了<Gaussian Bounding Boxes and Probabilistic Intersection-over-Union for Object Detection&g ...
随机推荐
- HTTP协议复习一--认识HTTP
HTTP 是什么 HTTP 是一个在计算机世界里专门在两点之间传输文字.图片.音频.视频等超文本数据的约定和规范. HTTP 是一个用在计算机世界里的协议,它确立了一种计算机之间交流通信的规范,以及相 ...
- django--模型字段引用
如果内置字段不起作用,您可以尝试使用django-localflavor(文档),其中包含对特定国家和文化有用的各种代码片段. 此外,您可以轻松编写自己的自定义模型字段. 注意 从技术上讲,这些模型是 ...
- UniChat-软件工程小组-第一次作业-选题
软件工程小组项目文档 小组成员:赵有为.张天善.宋春雨.郭凯璐.孙楠.冯韵瑶 Uni-Chat项目文档 需求分析Need 日常生活中我们在使用Ubuntu等系统时都会因为QQ等聊天工具对基于Lin ...
- 自定义jsr-269注解处理器 Error:服务配置文件不正确,或构造处理程序对象javax.annotation.processing.Processor: Provider not found
出现的原因 自定义处理器还没有被编译就被调用,所以报 not found在根据配置寻找自定义的注解处理器时,自定义处理器还未被编译12解决方式 maven项目可以配置编译插件,在编译项目之前先编译处理 ...
- DNS服务概念
DNS: Domain Name Service域名:www.magedu.com(主机名,FQDN:Full Qualified Domain Name, 完全限定域名)DNS:名称解析,Name ...
- IDEA实用教程(九)—— 创建Servlet
4. 创建Servlet 1) 第一步 2) 第二步 3) 第三步 4) 第四步 由于新创建的Web项目, 没有Tomcat环境, 所以创建的Servlet会发生导包错误,如下图所示 : 因此我们需要 ...
- 导入Excel数据到Oracle数据库的脚本
在cmd运行窗口中输入:sqlldr customermanager/123@orcl control="E:\CustomerData\excelInputOracle\insert.ct ...
- nginx添加系统服务(start|stop|restart|reload)
nginx添加系统服务 1.编写脚本,名为nginx #vim /etc/init.d/nginx #!/bin/bash#chkconfig: - 99 20 #description: Nginx ...
- Django --- ajax结合sweetalert使用,分页器,bulk_create批量创建数据
目录 ajax结合sweetalert使用 bulk_create批量插入数据 分页器的使用 ajax结合sweetalert使用 ajax可以在不刷新页面的情况下与后端进行交互,在对数据进行操作的时 ...
- Java获取视频的大小、时长
前端上传视频之后,根据上传的视频文件获取视频的大小和时长 1.获取视频时长 private String ReadVideoTime(File source) { Encoder encoder = ...