越狱检测方法


#1

请问,大家都用什么方法检测越狱,讨论一下呗…


#2

!说出来你再去写个反越狱检测岂不是越狱检测方法就失效了


#3
#include <ctime>
#include <cstdlib>
.....
-(BOOL)isJailbreak{
srand(time(NULL));

   if(rand()%2==0){
     return YES;
   }
     return NO;
}
.....

#4

你这个引入的好几个头文件,我感觉我这个更优雅

+ (BOOL)isJailbreak {
    return (NSDate.date.timeIntervalSince1970 % 10) == 0;  //   10% devices is jailbreak
}

#5
BOOL isJailbreak()
{
    int x;
    return ((intptr_t)&x & 0x10) != 0;
}

简洁高效无依赖


#6

方法千千万,全凭运气


#7

你这个要Foundation哇


#8

楼主已被一众大佬调戏至死


#9

去分析一下防检测的插件看看


#10

调戏的我都无言以对


#11

自己去分析xcon和Liberty,哼哼:joy::joy::joy::joy::joy::joy::joy::joy:


#12

讲真,xcon跟liberity比较弱鸡,永远不会有完美的检测越狱以及防越狱检测


#13

你有什么好的越狱插件吗?推荐一个,谢谢!


#14

自己写的最好


#15

我在网上找到一个,楼主可以参考下 https://github.com/liaogang/check_fish_inline_hook


#16
#include <unistd.h>
extern char **environ;


char **p = environ;
while (*p != NULL)
{
    printf("%s (%p)\n", *p, *p);
    
    if(strstr(*p, "MobileSubstrate")||strstr(*p, "mobilesubstrate"))
    {
        NSLog(@"JailBreak yes");
    }
    *p++;
}

#17
Dl_info info1;
Dl_info info2;
IMP func1 = class_getMethodImplementation(objc_lookUpClass("ASIdentifierManager"),sel_registerName("advertisingIdentifier"));
Method method = class_getClassMethod(objc_lookUpClass("ASIdentifierManager"), sel_registerName("sharedManager"));
IMP func2 = method_getImplementation(method);
int ret1 = dladdr(func1, &info1);
int ret2 = dladdr(func2, &info2);
if (ret1&&ret2) {
    if (info1.dli_fbase!=info2.dli_fbase) {
        NSLog(@"这个类可能被注入了");
    }
}else
{
    NSLog(@"这个类可能被注入了");
}

#18

可能写的不对,见谅


#19

3q very much


#20

检测越狱还是检测被注入了?