美文网首页
iOS 越狱检测

iOS 越狱检测

作者: 风依旧_c080 | 来源:发表于2022-06-23 21:21 被阅读0次

1

//判断⼯具安装路径本期先做成BOOL开关⽅法
//下面路径也可替换为以下常见越狱⼯具路径:
// /Library/MobileSubstrate/MobileSubstrate.dylib
///Applications/Cydia.app   /var/lib/cydia/
///var/cache/apt   /var/lib/apt    /etc/apt
///bin/bash /bin/sh
///usr/sbin/sshd   /usr/libexec/ssh-keysign   /etc/ssh/sshd_config
+ (BOOL)checkPath
{
    BOOL jailBroken = NO;
    NSString * cydiaPath = @"/Applications/Cydia.app";
    NSString * aptPath = @"/private/var/lib/apt";
    if ([[NSFileManager defaultManager] fileExistsAtPath:cydiaPath]) {
        jailBroken = YES;
    }
    if ([[NSFileManager defaultManager] fileExistsAtPath:aptPath]) {
        jailBroken = YES;
    }
    return jailBroken;
}

2

#include <sys/stat.h>
//防hook NSFileManager的⽅法使⽤stat系列函数检测Cydia等⼯具,路径同上
+ (BOOL)checkCydia
{
    struct stat stat_info;
    if (0 == stat("/Applications/Cydia.app", &stat_info)) {
        NSLog(@"Device is jailbroken");
        return YES;
    }
    return NO;
}

3

//检测当前程序运⾏的环境变量,防⽌通过DYLD_INSERT_LIBRARIES注⼊链接异常动态库,来更改相关⼯具名称
+ (BOOL)checkEnv
{
    char *env = getenv("DYLD_INSERT_LIBRARIES");
    NSLog(@"%s", env);
    if (env) {
        return YES;
    }
    return NO;
}

4

#include <sys/stat.h>
#include <dlfcn.h>
+ (BOOL)isStatNotSystemLib {
    
    if(TARGET_IPHONE_SIMULATOR)return NO;
    
    int ret ;
    
    Dl_info dylib_info;
    
    int (*func_stat)(const char *, struct stat *) = stat;
    
    if ((ret = dladdr(&func_stat, &dylib_info))) {
        
        NSString *fName = [NSString stringWithUTF8String: dylib_info.dli_fname];
        
        if(![fName isEqualToString:@"/usr/lib/system/libsystem_kernel.dylib"]){
            
            return YES;
            
        }
        
    }
    return NO;
}

5. 检测链接动态库,检测是否被链接了异常动态库,但动态库相关Api属于私有Api,调⽤的话appStore审核会不通过,所以不列举。

坑:

千万不要通过判断是否可以打开 cydia://为⾸的URL Schema 来判断是否越狱,因为你会发现很多App居然注册了这个URL Type !!

最后将以上几种方法结合起来,但凡有一条成立,那么手机就有可能越狱了!

相关文章

  • iOS的越狱检测和反越狱检测剖析

    iOS的越狱检测和反越狱检测原理剖析 为什么要检测越狱?因为越狱后会大幅降低安全性。对于一些金融类的APP或者游戏...

  • iOS越狱检测

    iOS越狱检测 检测当前程序运行的环境变量: 未越狱设备返回结果是null,越狱设备就各有各的精彩了,尤其是老一点...

  • 【iOS】越狱检测

    前段时间公司让做了个对越狱设备的检测和拦截,下面是综合自己的开发和网上一些帖子的总结,总体来说做起来还是比较简单的...

  • iOS越狱检测

    说多了都是泪,我说说我的情况,我们公司使用内购进行的产品购买,我全是按照网上(基本都一样)的流程进行了内购支付。支...

  • iOS 越狱检测

    重签名检测 查看证书的application-identifier 查看embedded.mobileprovis...

  • ios越狱检测

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

  • iOS 越狱检测

    1 2 3 4 5. 检测链接动态库,检测是否被链接了异常动态库,但动态库相关Api属于私有Api,调⽤的话app...

  • 《iOS防护11》越狱检测

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

  • ios反越狱检测与检测剖析

    一、 越狱检测与反检测及越狱社区未来发展 随着ios系统本身的逐步完善以及智能手机的发展步入成熟阶段, 普通用户对...

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

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

网友评论

      本文标题:iOS 越狱检测

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