hook_root_check.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. Java.perform(function() {
  2. var cls2 = Java.use('java.io.File');
  3. //Hook指定函数
  4. cls2.exists.overload().implementation = function() {
  5. //进入函数
  6. console.log('exists-in');
  7. //获取自身的path
  8. var mypath = this.getPath();
  9. //root特征文件列表
  10. var paths = new Array("/system/app/Superuser.apk", "/sbin/su",
  11. "/system/bin/su", "/system/xbin/su",
  12. "/data/local/xbin/su", "/data/local/bin/su",
  13. "/system/sd/xbin/su", "/system/bin/failsafe/su",
  14. "/data/local/su", "/su/bin/su");
  15. //判断路径是否匹配root特征
  16. var flag = false;
  17. paths.forEach(function(path) {
  18. if (mypath == path) {
  19. console.log('检测到root特征文件', path);
  20. flag = true;
  21. return;
  22. }
  23. });
  24. if (!flag) {
  25. //调用原函数,避免影响正常功能
  26. var result = this.exists();
  27. } else {
  28. //返回false,绕过root检测
  29. result = false;
  30. }
  31. console.log('exists-out', result)
  32. return result;
  33. }
  34. });