Loading

设备环境检查

checkRiskApp

getPackageInfo, pkg=com.topjohnwu.magisk
getPackageInfo, pkg=me.weishu.kernelsu
getPackageInfo, pkg=me.bmax.apatch
getPackageInfo, pkg=eu.chainfire.supersu
getPackageInfo, pkg=com.koushikdutta.superuser
getPackageInfo, pkg=com.noshufou.android.su
getPackageInfo, pkg=com.kingroot.kinguser
getPackageInfo, pkg=com.kingo.root
getPackageInfo, pkg=com.smedialink.oneclickroot
getPackageInfo, pkg=com.zhiqupk.root.global
getPackageInfo, pkg=com.shuame.rootgenius
getPackageInfo, pkg=com.sigma_rt.totalcontrol
getPackageInfo, pkg=jp.co.cyberagent.stf
getPackageInfo, pkg=com.er.run
getPackageInfo, pkg=org.autojs.autojs
getPackageInfo, pkg=org.autojs.autoxjs
getPackageInfo, pkg=com.touchsprite.android
getPackageInfo, pkg=com.gibb.easyclick
getPackageInfo, pkg=com.hamibot.hamibot
getPackageInfo, pkg=com.cyjh.mobileanjian
getPackageInfo, pkg=com.stardust.scriptdroid
getPackageInfo, pkg=com.github.uiautomator
getPackageInfo, pkg=com.github.uiautomator.test
getPackageInfo, pkg=io.appium.settings
getPackageInfo, pkg=io.appium.unlock
getPackageInfo, pkg=com.x0.strai.frep
getPackageInfo, pkg=com.rise.automatic.autoclicker
getPackageInfo, pkg=com.truedevelopersstudio.automatictap.autoclicker
getPackageInfo, pkg=com.nx.icefox
getPackageInfo, pkg=com.stardust.xscript

SystemProperties

ro.build.id
ro.build.display.id
ro.product.name
ro.product.device
ro.product.board
ro.product.manufacturer
ro.product.brand
ro.bootloader
ro.hardware
ro.boot.verifiedbootstate
ro.product.cpu.abilist
ro.product.cpu.abilist
ro.build.version.incremental
ro.build.version.release
ro.build.version.base_os
ro.build.version.security_patch
ro.build.version.preview_sdk
ro.build.version.codename
ro.build.version.codename
ro.build.version.all_codenames
ro.build.type
ro.recovery_id
ro.build.tags
ro.treble.enabled
ro.build.date.utc
ro.build.user
ro.build.host
ro.boot.container
ro.vendor.build.fingerprint
ro.build.expect.bootloader
ro.build.expect.baseband
gsm.version.baseband
ro.build.characteristics
ro.build.description
ro.product.locale
ro.build.flavor

模拟器检查

__int64 sub_4FDA60()
{
    // =========================================================
    // 1. x86 动态翻译层检测(Houdini)
    // =========================================================
    // libhoudini.so = Intel x86 Android 指令翻译兼容层
    // 常见于:
    //   - Android-x86 系统
    //   - 模拟器(部分版本 BlueStacks / LDPlayer / Genymotion)
    //   - ARM 指令动态转译环境
    //
    // 命中说明:运行环境非原生 ARM 设备
    if (exists("/system/lib/libhoudini.so") ||
        exists("/system/lib64/libhoudini.so"))
        return 3;

    // =========================================================
    // 2. 初始化设备指纹聚合缓冲区
    // =========================================================
    // ctx = 可变字符串/动态 buffer
    // 用于收集多个 system property 组成“设备画像”
    ctx = init_buffer();

    // =========================================================
    // 3. 收集 Android build fingerprint 体系信息
    // =========================================================
    // 这些字段构成 Android 设备唯一标识链:
    // - fingerprint:完整构建签名(最重要)
    // - device/model:设备型号
    // - brand/manufacturer:厂商信息
    // - name:产品代号
    // - hardware:硬件平台
    // - cpu.abi:CPU 架构(arm64/x86)
    //
    // 目的:构造“设备真实性画像”
    if (getprop("ro.build.fingerprint", buf))
        append(ctx, transform(buf));   // transform = 编码/混淆处理(防静态分析)

    if (getprop("ro.product.device", buf))
        append(ctx, transform(buf));

    if (getprop("ro.product.model", buf))
        append(ctx, transform(buf));

    if (getprop("ro.product.brand", buf))
        append(ctx, transform(buf));

    if (getprop("ro.product.name", buf))
        append(ctx, transform(buf));

    if (getprop("ro.product.manufacturer", buf))
        append(ctx, transform(buf));

    if (getprop("ro.hardware", buf))
        append(ctx, transform(buf));

    if (getprop("ro.product.cpu.abi", buf))
        append(ctx, transform(buf));

    // =========================================================
    // 4. 统一归一化(大小写标准化)
    // =========================================================
    // 防止绕过方式:
    //   Emulator / EMULATOR / emulator
    normalize_lowercase(ctx);

    // =========================================================
    // 5. 模拟器 / 虚拟化关键字黑名单检测
    // =========================================================
    // match_any = 多关键字匹配(类似 strstr 集合扫描)
    //
    // 黑名单特征:
    // - generic     → AOSP 默认构建(模拟器常见)
    // - unknown     → 未识别设备
    // - emulator    → Android Emulator
    // - vbox        → VirtualBox
    // - genymotion  → Genymotion
    // - goldfish    → Android Emulator 内核标识
    // - x86 / x64   → 非 ARM 架构(高风险信号)
    //
    // 任意命中即判定为模拟器/虚拟机环境
    if (match_any(ctx,
        "generic",
        "unknown",
        "emulator",
        "vbox",
        "genymotion",
        "goldfish",
        "x86",
        "x64"))
    {
        return 2;   // 模拟器 / 虚拟机 / 非真实设备环境
    }

    // =========================================================
    // 6. 通过检测(可信设备)
    // =========================================================
    // 未命中 Houdini + 未命中黑名单特征
    // 认为运行在正常物理 Android ARM 设备上
    return 0;
}

更多细节: 某大厂风控引擎SDK设备指纹和环境检测分析 - 看雪

posted @ 2026-04-09 11:04  xtyuns  阅读(29)  评论(0)    收藏  举报