01_iOS Jailbreak初识

2020-08-14  本文已影响0人  伶俐ll

iOS越狱(iOS Jailbreak)概念

利用iOS系统的漏洞,获取iOS系统的最高权限(Root),解开之前的各种限制(合法行为)

iOS Jailbreak的优点

iOS Jailbreak的缺点

完美越狱和不完美越狱

如何判断是否越狱成功?

2、根据是否能打开cydia判断

+ (BOOL)re_isJaibreak
{
    if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"cydia://"]]){
        NSLog(@"The device is jail broken!");
        return YES;
    }
    return NO;
}

3、根据是否能获取所有应用的名称判断,没有越狱的设备是没有读取所有应用名称的权限的。

+ (BOOL)re_isJaibreak
{
    if([[NSFileManager defaultManager] fileExistsAtPath:@"User/Applications/"]){
        NSArray*appList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:@"User/Applications/" error:nil];
        NSLog(@"appList = %@", appList);
        return YES;
    }
    return NO;
}

4、根据读取的环境变量是否有值判断,DYLD_INSERT_LIBRARIES环境变量在非越狱的设备上应该是空的,而越狱的设备基本上都会有Library/MobileSubstrate/MobileSubstrate.dylib

+ (BOOL)re_isJaibreak
{
    char *env = getenv("DYLD_INSERT_LIBRARIES");
    if(env) {
        NSLog(@"The device is jail broken!");
        return YES;
    }
    NSLog(@"The device is NOT jail broken!");
    return NO;
}

5、根据使用stat方法来判断cydia是否存在来判断,这个方法的思路还是通过判定cydia应用,但方法是使用stat函数,同时会判断是否有注入动态库。

上一篇 下一篇

猜你喜欢

热点阅读