防root
“which”, "su"检测su命令
检测常用目录路径
/system/bin/su
/system/xbin/su
/sbin/su
/system/su
/system/bin/.ext/.su
/system/usr/we-need-root/su-backup
/system/xbin/mu
magisk
检查文件
Superuser
Busybox
.tmpsu
Titanium
busybox
chainfire
daemonsu
greenify
noshufou
rootcloak
substrate
supersu
superuser
titanium
xposed
(以上应用版本不同,可能对应名称不用,推荐使用grep匹配部分关键词如super等)
判断SELinux是否开启,ro.build.selinux"
检测ro.debuggable和ro.secure值
检查特定路径是否有写权限,
/system
/system/bin
/system/sbin
/system/xbin
/vendor/bin
检测test-keys,开发人员常用
具体可以看:https://www.52pojie.cn/thread-1763111-1-1.html
防调试
通过轮询/proc/app_pid/status文件,读取TracerPid的字段值,可以判断App当前是否被调试跟踪。
常见frida检测
1.检测frida-server文件名 2.检测27042默认端口 3.检测D-Bus 4.检测/proc/pid/maps映射文件 5.检测/proc/pid/tast/tid/stat或/proc/pid/tast/tid/status 6.双进程保护
模拟器识别
模拟器一般的CPU架构是 Intel 或 x86
手机CPU架构是x86的,根据厂商特征,蓝叠模拟器的Wifi名字可能就叫BlueStacks,雷电模拟器进程中含有com.android.emu.coreservice,Redfinger、CloudPhone 可能是红手指云手机、华为云手机
调试
android:exported设置为true
完整性校验
基于MANIFEST.MF文件的安全机制对App包进行完整性校验检测
xposed
包名"de.robv.android.xposed.installer"
类名de.robv.android.xposed.Xposedielpers
de.robv.android.xposed.Xposedbridge
XposedBridge.jar
签名校验
签名前后的变化
文件校验
二次打包前后apk关键文件hash值比较,判断是否被修改
wifi代理
判断网络状态是否是vpn状态