美文网首页
检测iOS App是否运行在越狱手机中

检测iOS App是否运行在越狱手机中

作者: 七里田间的守望者 | 来源:发表于2020-03-23 15:30 被阅读0次

检测步骤如下

  • 检测Cydia是否安装
  • 检测app是否可以编辑系统文件
  • 检测系统是否包含可疑的文件
  • 检测是否有可疑的app安装如:FakeCarrier, Icy, etc.
  • 检测Cydia是否用非传统的方式命名
import Foundation
import UIKit

extension UIDevice {
    var isSimulator: Bool {
        return TARGET_OS_SIMULATOR != 0
    }
    
    var isJailBroken: Bool {
        get {
            if UIDevice.current.isSimulator { return false }
            if JailBrokenHelper.hasCydiaInstalled() { return true }
            if JailBrokenHelper.isContainsSuspiciousApps() { return true }
            if JailBrokenHelper.isSuspiciousSystemPathsExists() { return true }
            return JailBrokenHelper.canEditSystemFiles()
        }
    }
}

private struct JailBrokenHelper {
    //check if cydia is installed (using URI Scheme)
    static func hasCydiaInstalled() -> Bool {
        return UIApplication.shared.canOpenURL(URL(string: "cydia://")!)
    }
    
    //Check if suspicious apps (Cydia, FakeCarrier, Icy etc.) is installed
    static func isContainsSuspiciousApps() -> Bool {
        for path in suspiciousAppsPathToCheck {
            if FileManager.default.fileExists(atPath: path) {
                return true
            }
        }
        return false
    }
    
    //Check if system contains suspicious files
    static func isSuspiciousSystemPathsExists() -> Bool {
        for path in suspiciousSystemPathsToCheck {
            if FileManager.default.fileExists(atPath: path) {
                return true
            }
        }
        return false
    }
    
    //Check if app can edit system files
    static func canEditSystemFiles() -> Bool {
        let jailBreakText = "Developer Insider"
        do {
            try jailBreakText.write(toFile: jailBreakText, atomically: true, encoding: .utf8)
            return true
        } catch {
            return false
        }
    }
    
    //suspicious apps path to check
    static var suspiciousAppsPathToCheck: [String] {
        return ["/Applications/Cydia.app",
                "/Applications/blackra1n.app",
                "/Applications/FakeCarrier.app",
                "/Applications/Icy.app",
                "/Applications/IntelliScreen.app",
                "/Applications/MxTube.app",
                "/Applications/RockApp.app",
                "/Applications/SBSettings.app",
                "/Applications/WinterBoard.app"
        ]
    }
    
    //suspicious system paths to check
    static var suspiciousSystemPathsToCheck: [String] {
        return ["/Library/MobileSubstrate/DynamicLibraries/LiveClock.plist",
                "/Library/MobileSubstrate/DynamicLibraries/Veency.plist",
                "/private/var/lib/apt",
                "/private/var/lib/apt/",
                "/private/var/lib/cydia",
                "/private/var/mobile/Library/SBSettings/Themes",
                "/private/var/stash",
                "/private/var/tmp/cydia.log",
                "/System/Library/LaunchDaemons/com.ikey.bbot.plist",
                "/System/Library/LaunchDaemons/com.saurik.Cydia.Startup.plist",
                "/usr/bin/sshd",
                "/usr/libexec/sftp-server",
                "/usr/sbin/sshd",
                "/etc/apt",
                "/bin/bash",
                "/Library/MobileSubstrate/MobileSubstrate.dylib"
        ]
    }
}

记住在info.plist中添加 LSApplicationQueriesSchemes的值为Cydia

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>cydia</string>
</array>

相关文章

  • 检测iOS App是否运行在越狱手机中

    检测步骤如下 检测Cydia是否安装 检测app是否可以编辑系统文件 检测系统是否包含可疑的文件 检测是否有可疑的...

  • 检测手机是否越狱

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

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

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

  • 《iOS防护11》越狱检测

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

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

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

  • ios越狱检测

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

  • iOS 给APP安全升级

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

  • 检测iPhone手机是否越狱

  • 越狱环境(三) 之安装包

    在越狱手机中Cydia 就相当于iphone中的App Store,可以安装各种插件、补丁、App, 越狱的手机也...

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

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

网友评论

      本文标题:检测iOS App是否运行在越狱手机中

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