Java.perform(function() { var cls2 = Java.use('java.io.File'); //Hook指定函数 cls2.exists.overload().implementation = function() { //进入函数 console.log('exists-in'); //获取自身的path var mypath = this.getPath(); //root特征文件列表 var paths = new Array("/system/app/Superuser.apk", "/sbin/su", "/system/bin/su", "/system/xbin/su", "/data/local/xbin/su", "/data/local/bin/su", "/system/sd/xbin/su", "/system/bin/failsafe/su", "/data/local/su", "/su/bin/su"); //判断路径是否匹配root特征 var flag = false; paths.forEach(function(path) { if (mypath == path) { console.log('检测到root特征文件', path); flag = true; return; } }); if (!flag) { //调用原函数,避免影响正常功能 var result = this.exists(); } else { //返回false,绕过root检测 result = false; } console.log('exists-out', result) return result; } });