首页
社区
课程
招聘
[原创]Overt安全风控检测工具深度解析
发表于: 2025-8-2 01:01 8465

[原创]Overt安全风控检测工具深度解析

2025-8-2 01:01
8465

在移动互联网时代,设备安全检测是风控体系中的重要一环。掌握前沿风控技术是每个安全人员的重要的必修课程之一。Overt 项目致力于收集并集成当前公开的检测技术于一身,构建了一个全面、高效、安全的Android设备安全检测体系。

本文将从技术原理、架构设计、模块实现等多个维度,深入解析Overt项目的核心技术和实现细节,为安全从业者提供一份全面的技术参考。通过详细分析JVM获取、ClassLoader遍历、Linker解析、SSL证书验证、TEE检测等关键技术难点,帮助读者理解当前的Android设备安全检测技术,所以赶快来领取顶级攻防游戏的入场券吧。

Overt是一个专业的Android设备安全检测工具,通过多维度收集和分析系统信息来检测设备是否被Root、被调试工具注入或存在其他安全风险。项目采用模块化架构设计,将不同功能分散到独立的模块中,便于维护和扩展。所有代码都经过详细注释,确保代码的可读性和可维护性。

21eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6D9P5s2A6Q4x3X3c8B7K9h3q4F1k6r3q4F1i4K6u0r3e0%4k6W2M7Y4b7`.

项目采用多模块架构,包含app(主应用)、zcore(核心功能库)、zinfo(信息收集)、zconfig(配置管理)、zlog(日志)、zstd(标准库工具)、zlibc(系统调用封装)等模块。采用分层依赖架构,从配置管理到任务调度共分6个依赖等级。

文件系统检测:

系统属性检测:

挂载点检测:

类加载器遍历:

特征匹配:

类名检测:

系统调用时序分析:

异常检测:

阈值判定:

本地时间获取: 使用标准时间函数获取系统当前时间

启动时间检测:

远程时间验证:

maps文件解析:

映射数量检测:

权限检测:

内容检测:

进程状态分析:

任务信息检测:

内存映射分析:

HTTPS连接建立:

证书指纹验证:

证书固定:

Android ID获取:

存储指纹生成:

DRM ID获取:

共享库路径遍历:

黑名单库检测:

CRC校验和检测:

KeyStore认证证书获取:

证书解析:

安全状态检测:

Context方式检测:

路径方式检测:

越权检测:

充电状态检测:

安装器名称检测:

属性遍历:

关键属性验证:

序列号分析:

APK路径获取:

ZIP文件解析:

签名提取和验证:

端口连接检测:

可疑端口检测:

错误处理:

UDP广播机制:

设备发现:

日志遍历:

可疑记录检测:

进程路径验证:

Binder通信机制:

进程信息获取:

跨进程检测优势:

传感器管理器:

风险评分计算:

风险等级判定:

zconfig/src/main/cpp/zConfig.h中修改ZCONFIG_ENABLE_NONSTD_API宏:

修改后重新编译项目即可生效。

[原创]自动化采集Android系统级设备指纹对抗&如何四两拨千斤?

[原创]Android风控详细解读以及对照工具

[原创]KernelSU检测之“时间侧信道攻击”

珍惜 hunter

https://github.com/Mbed-TLS/mbedtls

https://github.com/vvb2060/KeyAttestation

https://github.com/vvb2060/XposedDetector

https://github.com/byxiaorun/Ruru

https://github.com/ac3ss0r/obfusheader.h

Android Key Attestation

Android Keystore System

X.509 Certificate Structure

ASN.1 Encoding Rules

0d5K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6S2L8X3c8J5L8$3W2V1i4K6u0W2k6$3!0G2k6$3I4W2M7$3!0#2M7X3y4W2i4K6u0W2j5$3!0E0i4K6u0r3M7r3I4S2N6r3k6G2M7X3#2Q4x3V1k6F1k6r3D9`.

3a4K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6G2M7r3g2F1K9X3c8C8i4K6u0r3K9X3c8C8z5s2g2Q4x3X3g2Y4K9i4b7`.

1adK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6$3N6X3t1J5x3o6j5H3i4K6u0r3d9$3g2&6b7i4c8@1k6i4y4@1j5i4c8A6L8$3&6Q4x3X3g2Y4K9i4b7`.

# 确保已安装Android SDK 34和NDK 21.1.6352462
# 确保已安装CMake 3.22.1或更高版本
# 确保已安装Java 17
# 确保已安装Gradle 8.4
# 确保已安装Android SDK 34和NDK 21.1.6352462
# 确保已安装CMake 3.22.1或更高版本
# 确保已安装Java 17
# 确保已安装Gradle 8.4
# 编译所有模块
./gradlew assembleDebug
 
# 编译特定模块
./gradlew :app:assembleDebug
./gradlew :zcore:assembleDebug
./gradlew :zinfo:assembleDebug
 
# 清理项目
./gradlew clean
# 编译所有模块
./gradlew assembleDebug
 
# 编译特定模块
./gradlew :app:assembleDebug
./gradlew :zcore:assembleDebug
./gradlew :zinfo:assembleDebug
 
# 清理项目
./gradlew clean
1
2
3
4
# 确保已安装Android SDK 34和NDK 21.1.6352462
# 确保已安装CMake 3.22.1或更高版本
# 确保已安装Java 17
# 确保已安装Gradle 8.4
1
2
3
4
5
6
7
8
9
10
# 编译所有模块
./gradlew assembleDebug
 
# 编译特定模块
./gradlew :app:assembleDebug
./gradlew :zcore:assembleDebug
./gradlew :zinfo:assembleDebug
 
# 清理项目
./gradlew clean
  • 多维度安全检测: 涵盖Root检测、调试工具检测、系统完整性检测等
  • 模块化设计: 清晰的模块分离,便于维护和功能扩展
  • 安全通信: 基于mbedTLS的HTTPS通信,支持证书固定验证
  • 非标准API支持: 可切换使用标准API或非标准API,绕过libc层直接进行系统调用
  • 遍历常见Root文件路径(如/system/bin/su/system/xbin/su等)
  • 检查文件是否存在,存在则判定为Root设备
  • 检测Root管理应用(SuperSU、Magisk Manager等)的安装
  • 检查ro.securero.debuggable等关键系统属性
  • 验证属性值是否符合预期,异常值表示可能被Root
  • 分析/proc/mounts文件,检测异常挂载点
  • 检测overlay文件系统挂载,这是Magisk等Root框架的常见特征
  • 通过JVM接口获取所有已加载的类加载器
  • 将类加载器转换为字符串表示
  • 检测LspModuleClassLoader等LSPosed框架的类加载器
  • 检测InMemoryDexClassLoader等内存动态加载的类加载器
  • 这些类加载器通常由Hook框架注入
  • 遍历所有已加载的类名
  • 匹配黑名单类名(如lsposedXposedBridge等)
  • 发现可疑类名则判定为存在Hook框架
  • 绑定线程到特定CPU核心,确保测量稳定性
  • 使用ARM64虚拟计数器(cntvct_el0寄存器)获取高精度时间戳
  • 执行大量系统调用(如faccessatfchownat)并记录执行时间
  • 正常情况下,faccessat的执行速度应该快于fchownat
  • 如果faccessat大量慢于fchownat,说明存在Hook框架拦截
  • Hook框架会增加系统调用的执行时间,导致时序异常
  • 统计异常次数,超过阈值(如7000次)则判定为环境异常
  • 这种方法可以检测到基于系统调用Hook的调试工具
  • 通过系统调用获取系统启动时间
  • 分析/proc/mounts中文件系统的最早创建时间
  • 启动时间过短可能表示设备刚重启或时间被篡改
  • 通过HTTPS请求获取远程服务器时间
  • 使用证书固定验证确保通信安全
  • 比较本地时间和远程时间,差异过大则判定为时间被篡改
  • 解析/proc/self/maps文件,获取进程内存映射信息
  • 分析关键系统库(如libart.solibc.so)的映射情况
  • 正常情况下,系统库应该有固定数量的内存段(通常为4个)
  • 映射数量异常可能表示库被篡改或Hook
  • 检查内存段的权限标志(如r--pr-xprw-p
  • 权限异常可能表示内存被修改或Hook框架注入
  • 读取关键文件(如base.odex)的二进制内容
  • 搜索可疑字符串(如--inline-max-code-units=0
  • 发现可疑内容则判定为存在Hook框架
  • 解析/proc/self/status文件,获取进程状态信息
  • 检测进程的TracerPid,非零值表示进程被调试
  • 分析/proc/self/task目录,获取所有线程信息
  • 检测可疑线程名(如gmainpool-frida等Frida相关线程)
  • 检测内存中映射的可疑库文件
  • 识别调试工具和Hook框架的特征库
  • 使用mbedTLS建立HTTPS连接
  • 获取服务器证书链
  • 计算证书的SHA256指纹
  • 与预置的证书指纹进行比较
  • 指纹不匹配则判定为中间人攻击或证书被篡改
  • 实现证书固定机制,只信任特定的证书
  • 防止中间人攻击和证书伪造
  • 通过JNI调用Android Settings.Secure API获取android_id
  • Android ID是设备唯一标识符,用于设备识别
  • 使用statfs64系统调用获取存储文件系统信息
  • 提取文件系统类型、块大小、块数量、文件数量、文件系统ID等特征
  • 拼接生成唯一的存储指纹字符串
  • 使用Android MediaDrm API获取Widevine DRM设备唯一ID
  • 将32字节的DRM ID压缩为16个十六进制字符
  • DRM ID为空可能表示设备DRM功能异常或被禁用
  • 通过动态链接器获取所有已加载共享库的路径列表
  • 遍历所有库路径,检测可疑库文件
  • 检测LSPosed相关库(包含"lsposed"字符串)
  • 检测Frida相关库(包含"frida"字符串)
  • 这些库的存在通常表明Hook框架已注入
  • 对关键系统库(如libc.solibart.solibinput.so)进行CRC校验
  • 比较运行时库的CRC值与预期值
  • CRC不匹配表示库文件被篡改或Hook
  • 通过Android KeyStore API生成密钥对
  • 设置认证挑战(Attestation Challenge)
  • 获取包含TEE认证信息的X.509证书
  • 使用OpenSSL解析X.509证书
  • 提取TEE认证扩展(TEE Attestation Extension)
  • 解析认证记录(Attestation Record)中的授权列表
  • 检查设备锁定状态(device_locked),未锁定则判定为不安全
  • 检查验证启动状态(verified_boot_state),非已验证状态则判定为不安全
  • 检查RootOfTrust信息,验证启动密钥和状态
  • 通过PackageManager.getApplicationInfo检测应用是否安装
  • 通过PackageManager.getLaunchIntentForPackage作为备用检测方法
  • 检测Root管理应用(如SuperSU、Magisk Manager等)
  • 检查/data/data/data/user/0/data/user_de/0等应用数据目录
  • 检查/storage/emulated/0/Android/data外部存储目录
  • 应用数据目录存在则判定为应用已安装
  • 使用路径漏洞检测(如/sdcard/android/\u200bdata/
  • 使用Shell命令越权检测
  • 这些方法可以绕过某些检测机制
  • 通过注册BatteryManager广播接收器获取电池状态
  • 检测设备是否正在充电或已充满
  • 充电状态异常可能表示设备环境异常
  • 通过PackageManager获取应用的安装器包名
  • 检测是否通过可疑安装器安装(如Root管理应用)
  • 异常安装器可能表示应用被恶意修改
  • 使用__system_property_foreach遍历所有系统属性
  • 解析属性内部结构,提取属性名、值和序列号
  • 检查ro.secure属性,应为"1"表示安全模式
  • 检查ro.debuggable属性,应为"0"表示不可调试
  • 检查ro.build.tags属性,应为"release-keys"
  • 属性值异常表示系统可能被修改或Root
  • 解析属性序列号的dirty标志、版本号和值长度
  • 序列号异常可能表示属性被动态修改
  • 通过dladdr获取当前库文件路径
  • 使用正则表达式提取应用特定目录路径
  • 构建base.apk的完整路径
  • 使用minizip库解析APK文件(APK本质是ZIP格式)
  • 遍历ZIP文件中的条目,查找META-INF目录下的.RSA签名文件
  • 提取.RSA文件的二进制内容
  • 计算签名文件的SHA256哈希值
  • 验证签名文件是否存在和有效
  • 创建TCP socket并尝试连接到指定端口
  • 使用非阻塞模式,设置200ms超时
  • 连接成功则判定为端口被占用
  • 检测调试工具常用端口(如Frida默认端口27042)
  • 检测Root框架常用端口
  • 端口被占用可能表示调试工具或Root框架正在运行
  • 处理连接失败、超时等异常情况
  • 使用select系统调用等待连接结果
  • 检查socket错误状态确定连接是否成功
  • 启动UDP广播发送器,向端口7476发送"overt"消息
  • 启动UDP广播监听器,监听端口7476接收响应
  • 启动本地IP监控,获取本机网络信息
  • 接收UDP广播响应,记录发送方的IP地址
  • 将检测到的Overt设备标记为警告级别
  • 用于检测同一网络中的其他Overt设备
  • 遍历指定PID范围(1500-2000),检查每个进程的日志记录
  • 使用logcat -d命令获取系统日志
  • 搜索日志中包含avc(SELinux审计日志)和u:r:su:s0(Root权限上下文)的记录
  • 这些记录通常由Zygisk等Root框架产生
  • 发现可疑记录则判定为存在Root框架
  • 检查对应PID的进程路径是否存在
  • 确保检测的进程确实存在
  • 通过共享内存和Binder IPC与隔离进程通信
  • 发送"get_isoloated_process_info"消息请求进程信息
  • 隔离进程执行进程信息检测(调用get_proc_info
  • 将检测结果序列化为JSON格式返回
  • 主进程解析JSON响应,获取隔离进程的检测结果
  • 隔离进程运行在独立进程空间,可能检测到主进程无法检测的异常
  • 通过Binder通信实现跨进程信息共享
  • 使用zSensorManager单例管理传感器检测
  • 获取设备上所有可用的传感器
  • 检测传感器FIFO是否为空(可能表示传感器被禁用)
  • 检测唤醒传感器数量是否过少
  • 检测传感器延迟是否过于均匀(可能表示数据被伪造)
  • 检测传感器总数是否过低
  • 根据风险评分计算风险等级
  • 评分超过60为错误级别,否则为警告级别
  • 通过风险位标志标识具体的风险类型
  • Android Gradle Plugin: 8.3.0
  • Gradle版本: 8.4
  • compileSdk: 34
  • targetSdk: 34
  • minSdk: 23
  • ABI支持: arm64-v8a
  • Java版本: 17
  • NDK版本: 21.1.6352462
  • CMake版本: 3.22.1
  • mbedTLS: 用于加密和安全通信
  • 启用非标准API: #define ZCONFIG_ENABLE_NONSTD_API 1
  • 使用标准API: #define ZCONFIG_ENABLE_NONSTD_API 0
  1. 文件系统检测:

    • 遍历常见Root文件路径(如/system/bin/su/system/xbin/su等)
    • 检查文件是否存在,存在则判定为Root设备
    • 检测Root管理应用(SuperSU、Magisk Manager等)的安装
  2. 系统属性检测:

    • 检查ro.securero.debuggable等关键系统属性
    • 验证属性值是否符合预期,异常值表示可能被Root
  3. 挂载点检测:

    • 分析/proc/mounts文件,检测异常挂载点
    • 检测overlay文件系统挂载,这是Magisk等Root框架的常见特征
  1. 类加载器遍历:

    • 通过JVM接口获取所有已加载的类加载器
    • 将类加载器转换为字符串表示
  2. 特征匹配:

    • 检测LspModuleClassLoader等LSPosed框架的类加载器
    • 检测InMemoryDexClassLoader等内存动态加载的类加载器
    • 这些类加载器通常由Hook框架注入
  3. 类名检测:

    • 遍历所有已加载的类名
    • 匹配黑名单类名(如lsposedXposedBridge等)
    • 发现可疑类名则判定为存在Hook框架
  1. 系统调用时序分析:

    • 绑定线程到特定CPU核心,确保测量稳定性
    • 使用ARM64虚拟计数器(cntvct_el0寄存器)获取高精度时间戳
    • 执行大量系统调用(如faccessatfchownat)并记录执行时间
  2. 异常检测:

    • 正常情况下,faccessat的执行速度应该快于fchownat
    • 如果faccessat大量慢于fchownat,说明存在Hook框架拦截
    • Hook框架会增加系统调用的执行时间,导致时序异常
  3. 阈值判定:

    • 统计异常次数,超过阈值(如7000次)则判定为环境异常
    • 这种方法可以检测到基于系统调用Hook的调试工具
  1. 本地时间获取: 使用标准时间函数获取系统当前时间

  2. 启动时间检测:

    • 通过系统调用获取系统启动时间
    • 分析/proc/mounts中文件系统的最早创建时间
    • 启动时间过短可能表示设备刚重启或时间被篡改
  3. 远程时间验证:

    • 通过HTTPS请求获取远程服务器时间
    • 使用证书固定验证确保通信安全
    • 比较本地时间和远程时间,差异过大则判定为时间被篡改
  1. maps文件解析:

    • 解析/proc/self/maps文件,获取进程内存映射信息
    • 分析关键系统库(如libart.solibc.so)的映射情况
  2. 映射数量检测:

    • 正常情况下,系统库应该有固定数量的内存段(通常为4个)
    • 映射数量异常可能表示库被篡改或Hook
  3. 权限检测:

    • 检查内存段的权限标志(如r--pr-xprw-p
    • 权限异常可能表示内存被修改或Hook框架注入
  4. 内容检测:

    • 读取关键文件(如base.odex)的二进制内容
    • 搜索可疑字符串(如--inline-max-code-units=0
    • 发现可疑内容则判定为存在Hook框架
  1. 进程状态分析:

    • 解析/proc/self/status文件,获取进程状态信息
    • 检测进程的TracerPid,非零值表示进程被调试
  2. 任务信息检测:

    • 分析/proc/self/task目录,获取所有线程信息
    • 检测可疑线程名(如gmainpool-frida等Frida相关线程)
  3. 内存映射分析:

    • 检测内存中映射的可疑库文件
    • 识别调试工具和Hook框架的特征库
  1. HTTPS连接建立:

    • 使用mbedTLS建立HTTPS连接
    • 获取服务器证书链
  2. 证书指纹验证:

    • 计算证书的SHA256指纹
    • 与预置的证书指纹进行比较
    • 指纹不匹配则判定为中间人攻击或证书被篡改
  3. 证书固定:

    • 实现证书固定机制,只信任特定的证书
    • 防止中间人攻击和证书伪造
  1. Android ID获取:

    • 通过JNI调用Android Settings.Secure API获取android_id
    • Android ID是设备唯一标识符,用于设备识别
  2. 存储指纹生成:

    • 使用statfs64系统调用获取存储文件系统信息
    • 提取文件系统类型、块大小、块数量、文件数量、文件系统ID等特征
    • 拼接生成唯一的存储指纹字符串
  3. DRM ID获取:

    • 使用Android MediaDrm API获取Widevine DRM设备唯一ID
    • 将32字节的DRM ID压缩为16个十六进制字符
    • DRM ID为空可能表示设备DRM功能异常或被禁用
  1. 共享库路径遍历:

    • 通过动态链接器获取所有已加载共享库的路径列表
    • 遍历所有库路径,检测可疑库文件
  2. 黑名单库检测:

    • 检测LSPosed相关库(包含"lsposed"字符串)
    • 检测Frida相关库(包含"frida"字符串)
    • 这些库的存在通常表明Hook框架已注入
  3. CRC校验和检测:

    • 对关键系统库(如libc.solibart.solibinput.so)进行CRC校验
    • 比较运行时库的CRC值与预期值
    • CRC不匹配表示库文件被篡改或Hook
  1. KeyStore认证证书获取:

    • 通过Android KeyStore API生成密钥对
    • 设置认证挑战(Attestation Challenge)
    • 获取包含TEE认证信息的X.509证书
  2. 证书解析:

    • 使用OpenSSL解析X.509证书
    • 提取TEE认证扩展(TEE Attestation Extension)
    • 解析认证记录(Attestation Record)中的授权列表
  3. 安全状态检测:

    • 检查设备锁定状态(device_locked),未锁定则判定为不安全
    • 检查验证启动状态(verified_boot_state),非已验证状态则判定为不安全
    • 检查RootOfTrust信息,验证启动密钥和状态
  1. Context方式检测:

    • 通过PackageManager.getApplicationInfo检测应用是否安装
    • 通过PackageManager.getLaunchIntentForPackage作为备用检测方法
    • 检测Root管理应用(如SuperSU、Magisk Manager等)
  2. 路径方式检测:

    • 检查/data/data/data/user/0/data/user_de/0等应用数据目录
    • 检查/storage/emulated/0/Android/data外部存储目录
    • 应用数据目录存在则判定为应用已安装
  3. 越权检测:

    • 使用路径漏洞检测(如/sdcard/android/\u200bdata/
    • 使用Shell命令越权检测
    • 这些方法可以绕过某些检测机制
  1. 充电状态检测:

    • 通过注册BatteryManager广播接收器获取电池状态
    • 检测设备是否正在充电或已充满
    • 充电状态异常可能表示设备环境异常
  2. 安装器名称检测:

    • 通过PackageManager获取应用的安装器包名
    • 检测是否通过可疑安装器安装(如Root管理应用)
    • 异常安装器可能表示应用被恶意修改
  1. 属性遍历:

    • 使用__system_property_foreach遍历所有系统属性
    • 解析属性内部结构,提取属性名、值和序列号
  2. 关键属性验证:

    • 检查ro.secure属性,应为"1"表示安全模式
    • 检查ro.debuggable属性,应为"0"表示不可调试
    • 检查ro.build.tags属性,应为"release-keys"
    • 属性值异常表示系统可能被修改或Root
  3. 序列号分析:

    • 解析属性序列号的dirty标志、版本号和值长度
    • 序列号异常可能表示属性被动态修改
  1. APK路径获取:

    • 通过dladdr获取当前库文件路径
    • 使用正则表达式提取应用特定目录路径
    • 构建base.apk的完整路径
  2. ZIP文件解析:

    • 使用minizip库解析APK文件(APK本质是ZIP格式)
    • 遍历ZIP文件中的条目,查找META-INF目录下的.RSA签名文件
  3. 签名提取和验证:

    • 提取.RSA文件的二进制内容
    • 计算签名文件的SHA256哈希值
    • 验证签名文件是否存在和有效
  1. 端口连接检测:

    • 创建TCP socket并尝试连接到指定端口
    • 使用非阻塞模式,设置200ms超时
    • 连接成功则判定为端口被占用
  2. 可疑端口检测:

    • 检测调试工具常用端口(如Frida默认端口27042)
    • 检测Root框架常用端口
    • 端口被占用可能表示调试工具或Root框架正在运行
  3. 错误处理:

    • 处理连接失败、超时等异常情况
    • 使用select系统调用等待连接结果
    • 检查socket错误状态确定连接是否成功
  1. UDP广播机制:

    • 启动UDP广播发送器,向端口7476发送"overt"消息
    • 启动UDP广播监听器,监听端口7476接收响应
    • 启动本地IP监控,获取本机网络信息
  2. 设备发现:

    • 接收UDP广播响应,记录发送方的IP地址
    • 将检测到的Overt设备标记为警告级别
    • 用于检测同一网络中的其他Overt设备
  1. 日志遍历:

    • 遍历指定PID范围(1500-2000),检查每个进程的日志记录
    • 使用logcat -d命令获取系统日志
  2. 可疑记录检测:

    • 搜索日志中包含avc(SELinux审计日志)和u:r:su:s0(Root权限上下文)的记录
    • 这些记录通常由Zygisk等Root框架产生
    • 发现可疑记录则判定为存在Root框架
  3. 进程路径验证:

    • 检查对应PID的进程路径是否存在
    • 确保检测的进程确实存在
  1. Binder通信机制:

    • 通过共享内存和Binder IPC与隔离进程通信
    • 发送"get_isoloated_process_info"消息请求进程信息
  2. 进程信息获取:

    • 隔离进程执行进程信息检测(调用get_proc_info
    • 将检测结果序列化为JSON格式返回
    • 主进程解析JSON响应,获取隔离进程的检测结果
  3. 跨进程检测优势:

    • 隔离进程运行在独立进程空间,可能检测到主进程无法检测的异常
    • 通过Binder通信实现跨进程信息共享
  1. 传感器管理器:

    • 使用zSensorManager单例管理传感器检测
    • 获取设备上所有可用的传感器
  2. 风险评分计算:

    • 检测传感器FIFO是否为空(可能表示传感器被禁用)
    • 检测唤醒传感器数量是否过少
    • 检测传感器延迟是否过于均匀(可能表示数据被伪造)
    • 检测传感器总数是否过低
  3. 风险等级判定:

    • 根据风险评分计算风险等级
    • 评分超过60为错误级别,否则为警告级别
    • 通过风险位标志标识具体的风险类型
  • 多维度安全检测: 涵盖Root检测、调试工具检测、系统完整性检测等
  • 模块化设计: 清晰的模块分离,便于维护和功能扩展
  • 安全通信: 基于mbedTLS的HTTPS通信,支持证书固定验证
  • 非标准API支持: 可切换使用标准API或非标准API,绕过libc层直接进行系统调用
  • 文件系统检测:

    • 遍历常见Root文件路径(如/system/bin/su/system/xbin/su等)
    • 检查文件是否存在,存在则判定为Root设备
    • 检测Root管理应用(SuperSU、Magisk Manager等)的安装
  • 遍历常见Root文件路径(如/system/bin/su/system/xbin/su等)
  • 检查文件是否存在,存在则判定为Root设备
  • 检测Root管理应用(SuperSU、Magisk Manager等)的安装
  • 系统属性检测:

    • 检查ro.securero.debuggable等关键系统属性
    • 验证属性值是否符合预期,异常值表示可能被Root
  • 检查ro.securero.debuggable等关键系统属性
  • 验证属性值是否符合预期,异常值表示可能被Root
  • 挂载点检测:

    • 分析/proc/mounts文件,检测异常挂载点
    • 检测overlay文件系统挂载,这是Magisk等Root框架的常见特征
  • 分析/proc/mounts文件,检测异常挂载点
  • 检测overlay文件系统挂载,这是Magisk等Root框架的常见特征
  • 类加载器遍历:

    • 通过JVM接口获取所有已加载的类加载器
    • 将类加载器转换为字符串表示
  • 通过JVM接口获取所有已加载的类加载器
  • 将类加载器转换为字符串表示
  • 特征匹配:

    • 检测LspModuleClassLoader等LSPosed框架的类加载器
    • 检测InMemoryDexClassLoader等内存动态加载的类加载器
    • 这些类加载器通常由Hook框架注入
  • 检测LspModuleClassLoader等LSPosed框架的类加载器
  • 检测InMemoryDexClassLoader等内存动态加载的类加载器
  • 这些类加载器通常由Hook框架注入

  • 传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

    最后于 2026-1-12 14:11 被简单的简单编辑 ,原因: 更新部分内容
    收藏
    免费 118
    支持
    分享
    最新回复 (65)
    雪    币: 0
    能力值: ( LV1,RANK:0 )
    在线值:
    发帖
    回帖
    粉丝
    2
    感谢分享
    2025-8-2 01:34
    0
    雪    币: 3209
    活跃值: (4124)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    3
    深夜发帖
    2025-8-2 03:28
    0
    雪    币: 498
    活跃值: (5401)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    4
    牛逼克拉斯
    2025-8-2 10:01
    0
    雪    币: 1919
    活跃值: (1876)
    能力值: ( LV4,RANK:40 )
    在线值:
    发帖
    回帖
    粉丝
    5
    cy
    2025-8-2 11:04
    0
    雪    币: 290
    活跃值: (1124)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    6
    Yangser cy
    CY
    2025-8-2 21:48
    1
    雪    币: 105
    活跃值: (2477)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    7
    6666
    2025-8-3 01:44
    0
    雪    币: 42
    能力值: ( LV1,RANK:0 )
    在线值:
    发帖
    回帖
    粉丝
    8
    可以私聊吗
    2025-8-3 22:16
    0
    雪    币: 260
    能力值: ( LV1,RANK:0 )
    在线值:
    发帖
    回帖
    粉丝
    9
    1
    2025-8-4 00:24
    0
    雪    币: 0
    活跃值: (115)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    10
    O
    2025-8-4 02:28
    0
    雪    币: 2790
    活跃值: (5694)
    能力值: ( LV6,RANK:90 )
    在线值:
    发帖
    回帖
    粉丝
    11
    感谢分享
    2025-8-4 08:33
    0
    雪    币: 396
    活跃值: (3178)
    能力值: ( LV3,RANK:30 )
    在线值:
    发帖
    回帖
    粉丝
    12
    感谢分享
    2025-8-4 09:07
    0
    雪    币: 0
    能力值: ( LV1,RANK:0 )
    在线值:
    发帖
    回帖
    粉丝
    13
    6
    2025-8-4 09:52
    0
    雪    币: 343
    活跃值: (1802)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    14
    6666
    2025-8-4 10:13
    0
    雪    币: 150
    活跃值: (1867)
    能力值: ( LV3,RANK:20 )
    在线值:
    发帖
    回帖
    粉丝
    15
    1111111111111111111
    2025-8-4 10:24
    0
    雪    币: 926
    活跃值: (2110)
    能力值: ( LV3,RANK:30 )
    在线值:
    发帖
    回帖
    粉丝
    16
    666
    2025-8-4 11:48
    0
    雪    币: 1506
    活跃值: (3873)
    能力值: ( LV4,RANK:40 )
    在线值:
    发帖
    回帖
    粉丝
    17
    666
    2025-8-4 12:05
    0
    雪    币: 84
    活跃值: (3593)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    18
    66
    2025-8-4 14:41
    0
    雪    币: 102
    能力值: ( LV1,RANK:0 )
    在线值:
    发帖
    回帖
    粉丝
    19
    学习
    2025-8-4 15:37
    0
    雪    币: 0
    能力值: ( LV1,RANK:0 )
    在线值:
    发帖
    回帖
    粉丝
    20
    666
    2025-8-4 16:29
    0
    雪    币: 1506
    活跃值: (3873)
    能力值: ( LV4,RANK:40 )
    在线值:
    发帖
    回帖
    粉丝
    21
    老铁有成品吗,我在本机编译运行,直接闪退了
    2025-8-4 16:40
    0
    雪    币: 3786
    活跃值: (5967)
    能力值: ( LV3,RANK:20 )
    在线值:
    发帖
    回帖
    粉丝
    22
    感谢分享
    2025-8-4 16:42
    0
    雪    币: 38
    活跃值: (1339)
    能力值: ( LV2,RANK:10 )
    在线值:
    发帖
    回帖
    粉丝
    23
    6666
    2025-8-4 17:12
    0
    雪    币: 11
    能力值: ( LV1,RANK:0 )
    在线值:
    发帖
    回帖
    粉丝
    24
    666
    2025-8-4 17:50
    0
    雪    币: 172
    能力值: ( LV1,RANK:0 )
    在线值:
    发帖
    回帖
    粉丝
    25
    mark
    2025-8-5 01:26
    0
    游客
    登录 | 注册 方可回帖
    返回