建设银行检测到设备已被Root的判断

转载:https://blog.csdn.net/m0_37735448/article/details/102555244

判断Android设备Root方法总结
先说结论没有办法完全检测出设备是否被root,因为root权限拥有系统的最高权限。 已经root的设备可以通过修改系统文件,和Hook来躲避检查。我们只能增加他躲避检查的难度来检测root权限。
1,通过判断是否存在一些已知的root程序包名来判断机器是否被root
"com.noshufou.android.su",
"com.noshufou.android.su.elite",
"eu.chainfire.supersu",
"com.koushikdutta.superuser",
"com.thirdparty.superuser",
"com.yellowes.su",
"com.topjohnwu.magisk"
2,通过判断是否存在一些危险应用,比如必须需要root权限才能使用的应用的包名来判断是否被root
    这个方法可能会误杀一些手机,可以根据自己需求添加这个方法

"com.koushikdutta.rommanager",
"com.koushikdutta.rommanager.license",
"com.dimonvideo.luckypatcher",
"com.chelpus.lackypatch",
"com.ramdroid.appquarantine",
"com.ramdroid.appquarantinepro",
"com.android.vending.billing.InAppBillingService.COIN",
"com.chelpus.luckypatcher"

3,检测一些常用目录是否有su文件
"/data/local/",
"/data/local/bin/",
"/data/local/xbin/",
"/sbin/",
"/su/bin/",
"/system/bin/",
"/system/bin/.ext/",
"/system/bin/failsafe/",
"/system/sd/xbin/",
"/system/usr/we-need-root/",
"/system/xbin/",
"/cache/",
"/data/",
"/dev/"

除了这种方法还可以通过Linux 的which命令来查找su文件,这样会更全面的查找。但是不可避免的一个问题就是,如果曾经root过但是root权限已经失效的设备会被判断成已经root。这个可以根据需求添加

4,判断ro.debuggable属性和ro.secure属性
    默认手机出厂后ro.debuggable属性应该为0,ro.secure应该为1。而root需要修改secure这个属性,如果这个属性被修改则认为这台手机被root了

5,判断一些系统路径是否可写。
    Android中一些系统目录在没有root权限的情况下是不可写入的,如果我们对这些目录有写入的权限则判断这台设备已经被Root

"/system",
"/system/bin",
"/system/sbin",
"/system/xbin",
"/vendor/bin",
"/sbin",
"/etc",
6,判断系统的Tags标签
    如果是正式发布版本的系统android.os.Build.TAGS的属性应该是release-keys,如果是test-keys,很可能是非官方正式发布的ROM,则判断设备被替换了ROM,被root了。这个方法不一定准确,根据自己情况添加。
 

 

建设银行解析后的判断节点有:

package com.secneo.apkwrapper; 

public final class a {
    
    不能包含下面这些apk文件:
    public static final String[] a = new String[]{"com.noshufou.android.su", "com.noshufou.android.su.elite", "eu.chainfire.supersu", "com.koushikdutta.superuser", "com.thirdparty.superuser", "com.yellowes.su"};
    public static final String[] b = new String[]{"com.koushikdutta.rommanager", "com.koushikdutta.rommanager.license", "com.dimonvideo.luckypatcher", "com.chelpus.lackypatch", "com.ramdroid.appquarantine", "com.ramdroid.appquarantinepro"};
    public static final String[] c = new String[]{"com.devadvance.rootcloak", "com.devadvance.rootcloakplus", "de.robv.android.xposed.installer", "com.saurik.substrate", "com.zachspong.temprootremovejb", "com.amphoras.hidemyroot", "com.amphoras.hidemyrootadfree", "com.formyhm.hiderootPremium", "com.formyhm.hideroot"};
    
    以下文件可以执行su操作:
    public static final String[] d = new String[]{"/data/local/", 
                                                  "/data/local/bin/", 
                                                  "/data/local/xbin/", 
                                                  "/sbin/", 
                                                  "/su/bin/", 
                                                  "/system/bin/", 
                                                  "/system/bin/.ext/", 
                                                  "/system/bin/failsafe/", 
                                                  "/system/sd/xbin/", 
                                                  "/system/usr/we-need-root/", 
                                                  "/system/xbin/"};
    
    以下目录是否有写入的权限: (成功)
    public static final String[] e = new String[]{"/system", 
                                                  "/system/bin", 
                                                  "/system/sbin", 
                                                  "/system/xbin", 
                                                  "/vendor/bin", 
                                                  "/sbin", 
                                                  "/etc"};
}

 

Android P的源码修改方案:

ifeq ($(DEFAULT_SYSTEM_DEV_CERTIFICATE),build/target/product/security/testkey)
    ifeq ($(TARGET_BUILD_VARIANT),user)
        BUILD_KEYS := release-keys
    else
        BUILD_KEYS := test-keys
    endif
else
BUILD_KEYS := dev-keys
endif

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值