| 12345678910111213141516171819202122232425262728293031323334 |
- 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;
- }
- });
|