iOS判断用户是否越狱

由于现在许多苹果手机都进行了越狱,而我们开发有时候需要判断手机是不是进行了越狱。

判断用户是不是进行了越狱

+ (BOOL)isPrisonBreak {

    BOOLb1 =NO, b2 =NO, b3 =NO, b4 =NO, b5 =NO;

    // 常见越狱文件

    NSArray*pathArray =@[

                           @"/Applications/Cydia.app",

                           @"/Library/MobileSubstrate/MobileSubstrate.dylib",

                           @"/bin/bash",

                           @"/usr/sbin/sshd",

                           @"/etc/apt"

                           ];

    for(inti =0; i < pathArray.count; i++) {

        NSString*path = pathArray[i];

        if ([[NSFileManager defaultManager] fileExistsAtPath:path]) {

            b1 =YES;

        }

    }

    // 读取系统所有的应用名称

    if ([[NSFileManager defaultManager] fileExistsAtPath:@"/User/Applications/"]){

        b2 =YES;

    }

    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"cydia://"]]) {

        b3 =YES;

    }

    structstatstat_info;

    //使用stat系列函数检测Cydia等工具

    if(0==stat("/Applications/Cydia.app", &stat_info)) {

        b4 =YES;

    }

    // 读取环境变量

    char*checkInsertLib =getenv("DYLD_INSERT_LIBRARIES");

    if(checkInsertLib) {

        b5 =YES;

    }

    return(b1 && b2 && b3 && b4 && b5);

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • http://blog.csdn.net/sakulafly/article/details/21159257 判...
    wzf_taker阅读 2,223评论 0 1
  • 前段时间公司让做了个对越狱设备的检测和拦截,下面是综合自己的开发和网上一些帖子的总结,总体来说做起来还是比较简单的...
    Yaso阅读 8,968评论 3 27
  • 苹果安全支付机制 苹果是非常重视安全性的,所以给用户设计了一套复杂的安全机制。但是很多用户喜好自由或者是被一些商家...
    X_code_ZH阅读 2,198评论 0 1
  • 越狱设备打印 (lldb) po [[NSFileManager defaultManager ] fileExi...
    努力_偷懒_的程序员阅读 3,790评论 0 2
  • 如果你看完书中的所有例子,你很可能已经做完你的实验和在已经越狱的iPhone上的研究。因为和许多人一样,几乎所有的...
    fishmai0阅读 16,510评论 2 42