美文网首页
检测手机是否越狱

检测手机是否越狱

作者: mkb2 | 来源:发表于2017-11-06 10:58 被阅读285次

有些app喜欢检测是否手机已经越狱,然后做一些处理,那么这里收集了一些方法,看看是否是越狱的

1. 常见越狱文件

const char *examineBreak_Tool_pathes[] = {
    "/Applications/Cydia.app",
    "/Library/MobileSubstrate/MobileSubstrate.dylib",
    "/bin/bash",
    "/usr/sbin/sshd",
    "/etc/apt"
};

    // 判断是否存在越狱文件
    for (int i = 0; i < 5; i++) {
        if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithUTF8String:examineBreak_Tool_pathes[i]]]){
            return YES;
        }
    }

2.如果是非越狱情况下,返回的是nil,如果是越狱了,返回了是个随机的字符串,判断length即可

char *printEnv(void){
    char *env = getenv("DYLD_INSERT_LIBRARIES");
    return env;
}

3.检测一下是否安装了cydia这个软件,亲测可用

    if ([[NSFileManager defaultManager] fileExistsAtPath:@"/User/Applications/"]){
        return YES;
    }

4.检测Mach-o文件的插入库有无MobileSubstrate.dylib这个库

遍历_dyld_get_image_name(i)获取的名称中是不是包含了Library/MobileSubstrate/MobileSubstrate.dylib

5.你可以看看stat是不是出自系统库

有没有被攻击者换掉:如果结果不是 /usr/lib/system/libsystem_kernel.dylib 的话,那就100%被攻击了。

#import <dlfcn.h>  

void checkInject(void)  
{  
    int ret ;  
    Dl_info dylib_info;  
    int (*func_stat)(const charchar *, struct stat *) = stat;  
    if ((ret = dladdr(func_stat, &dylib_info))) {  
        NSLog(@"lib :%s", dylib_info.dli_fname);  
    }  
} 

后记:这个方法已经不好使了--读取系统所有的应用名称

系统已经不然我们获取其他文件。


    // 过去好使,现在不行了.读取系统所有的应用名称
    if ([[NSFileManager defaultManager] fileExistsAtPath:@"/User/Applications/"]){
        return YES;
    }
读取系统文件已经过时了

说句题外话

如何检测这个app是不是来自于AppStore,查看有无描述文件即可

//其实只要用这个就行,如果有路径,说明就是被重新签名了
[[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"]
//验证一下猜测,看看是不是真的
NSFileManager *mgr = [NSFileManager defaultManager];
Bool have = [mgr fileExistsAtPath:@"/var/mobile/Containers/Bundle/Application/BECE8DA0-FA49-4BAE-9717-2ACB3FB3E4E4/Di.app/embedded.mobileprovision"];

参考文档1

相关文章

  • 检测手机是否越狱

    有些app喜欢检测是否手机已经越狱,然后做一些处理,那么这里收集了一些方法,看看是否是越狱的 1. 常见越狱文件 ...

  • ios越狱检测

    目前所用越狱检测判断 判断手机越狱的几种方式: 通过手机越狱后增加的越狱文件判断 根据是否能打开cydia判断 3...

  • 检测iPhone手机是否越狱

  • 【iOS应用安全、安全攻防】hook及越狱的基本防护与检测(动态

    ZXHookDetection 越狱检测 1.使用NSFileManager通过检测一些越狱后的关键文件/路径是否...

  • 检测是否越狱

    方法一,检测文静与路径的方法 代码如下: 方法二,检测链接 可以检测URL SCHEME或者SSH链接,代码如下:...

  • 《iOS防护11》越狱检测

    越狱检测的必要性 在iOS的安全防护中,对手机越狱的检测是十分必要的。如果发现手机是越狱的,那我们要对我们的应用做...

  • 第一章

    如何判断手机是否越狱

  • iOS 越狱代码检测

    判断手机越狱的几种方式: 1. 通过手机越狱后增加的越狱文件判断 2. 根据是否能打开cydia判断 3.根据是否...

  • iOS防护----越狱检测

    如何检测越狱手机一直是iOS应用安全防护的第一道门槛。在应用开发过程中,我们希望知道设备是否越狱,正以什么权限运行...

  • iOS 给APP安全升级

    检测设备是否越狱 检测设备网络环境是否开启代理 APP 禁止动态调试 如果你在Xcode调试环境下,去掉#ifnd...

网友评论

      本文标题:检测手机是否越狱

      本文链接:https://www.haomeiwen.com/subject/hqwkmxtx.html