iOS判斷是否越獄設(shè)備方法示例
前言
蘋果是非??粗禺a(chǎn)品的安全性的,所以給用戶設(shè)計了一套復(fù)雜的安全機制。這讓喜愛自由,崇尚一切開放的程序員們極度不爽,于是越獄就成了蘋果和黑客們反復(fù)斗法的場所。總體來說,越獄可以讓我們隨意安裝、共享應(yīng)用,但確實也降低了設(shè)備的安全性,會給一些惡意應(yīng)用提供方便之門。
有時我們的應(yīng)用希望知道安裝的設(shè)備是否已經(jīng)越獄了,顯然,蘋果官方不會給出解決方案來的,那么我們怎么辦呢?下面來一起看看詳細的介紹吧
越獄設(shè)備打印
(lldb) po [[NSFileManager defaultManager ] fileExistsAtPath:@"/Applications/Cydia.app"]
YES
(lldb) po [[NSFileManager defaultManager ] fileExistsAtPath:@"/private/var/lib/apt"]
YES
(lldb) po [[NSFileManager defaultManager ] fileExistsAtPath:@"/usr/lib/system/libsystem_kernel.dylib"]
NO
(lldb) po [[NSFileManager defaultManager ] fileExistsAtPath:@"Library/MobileSubstrate/MobileSubstrate.dylib"]
YES
(lldb) po [[NSFileManager defaultManager ] fileExistsAtPath:@"/etc/apt"]
YES
非越獄設(shè)備打印
(lldb) po [[NSFileManager defaultManager ] fileExistsAtPath:@"/Applications/Cydia.app"]
NO
(lldb) po [[NSFileManager defaultManager ] fileExistsAtPath:@"/private/var/lib/apt"]
NO
(lldb) po [[NSFileManager defaultManager ] fileExistsAtPath:@"/usr/lib/system/libsystem_kernel.dylib"]
YES
(lldb) po [[NSFileManager defaultManager ] fileExistsAtPath:@"Library/MobileSubstrate/MobileSubstrate.dylib"]
NO
(lldb) po [[NSFileManager defaultManager ] fileExistsAtPath:@"/etc/apt"]
NO
根據(jù)上面的打印結(jié)果可以看出要想判斷是否越獄 檢查如下路徑文件是否存在
1、"/Applications/Cydia.app" 存在 越獄
2、"/private/var/lib/apt" 存在 越獄
3、"/usr/lib/system/libsystem_kernel.dylib" 不存在 越獄
4、"Library/MobileSubstrate/MobileSubstrate.dylib" 存在 越獄
5、"/etc/apt" 存在 越獄
- (BOOL)isJailBreak{ __block BOOL jailBreak = NO; NSArray *array = @[@"/Applications/Cydia.app",@"/private/var/lib/apt",@"/usr/lib/system/libsystem_kernel.dylib",@"Library/MobileSubstrate/MobileSubstrate.dylib",@"/etc/apt"]; [array enumerateObjectsUsingBlock:^(NSString *obj, NSUInteger idx, BOOL * _Nonnull stop) { BOOL fileExist = [[NSFileManager defaultManager] fileExistsAtPath:obj]; if ([obj isEqualToString:@"/usr/lib/system/libsystem_kernel.dylib"]) { jailBreak |= !fileExist; }else{ jailBreak |= fileExist; } }]; return jailBreak; }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
iOS學(xué)習(xí)教程之UIView中坐標轉(zhuǎn)換詳解
這篇文章主要給大家介紹了關(guān)于iOS UIView中坐標轉(zhuǎn)換的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來跟著小編一起看看吧。2017-05-05C++ 中exit(),_exit(),return,abort()函數(shù)的區(qū)別
這篇文章主要介紹了C++ 中exit(),_exit(),return,abort()函數(shù)的區(qū)別的相關(guān)資料,需要的朋友可以參考下2016-12-12IOS UI學(xué)習(xí)教程之設(shè)置UITextField各種屬性
這篇文章主要為大家詳細介紹了IOS UI學(xué)習(xí)教程之設(shè)置UITextField各種屬性,感興趣的小伙伴們可以參考一下2016-03-03iOS常用小功能(獲得屏幕圖像、壓縮圖片、加邊框、調(diào)整label的size)
本文主要介紹了iOS常用小功能:獲得屏幕圖像,label的動態(tài)size,時間戳轉(zhuǎn)化為時間,RGB轉(zhuǎn)化成顏色,加邊框,壓縮圖片,textfield的placeholder,圖片做灰度處理的方法。下面跟著小編一起來看下吧2017-03-03iOS逆向工程使用LLDB的USB連接調(diào)試第三方App
這篇文章主要介紹了iOS逆向工程使用LLDB的USB連接調(diào)試第三方App,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09在iOS App中實現(xiàn)地理位置定位的基本方法解析
這篇文章主要介紹了在iOS App中實現(xiàn)地理位置定位的基本方法解析,包括獲取當(dāng)前位置和計算兩點間距離等基本功能的實現(xiàn),需要的朋友可以參考下2016-05-05