備用:判斷iOS設(shè)備是否越獄代碼

越獄后會(huì)自動(dòng)安裝cydia,所以我們 可以從這方面入手;也可以借助權(quán)限問(wèn)題分蓖,去讀取應(yīng)用的列表;還可以去讀環(huán)境變量尔许,不越獄的機(jī)器應(yīng)該是讀取不到任何內(nèi)容的么鹤。
下面我們一個(gè)一個(gè)方法來(lái)講:

  • 判定常見(jiàn)的越獄文件
/Applications/Cydia.app        
/Library/MobileSubstrate/MobileSubstrate.dylib        
/bin/bash       
/usr/sbin/sshd        
/etc/apt   

這個(gè)表可以盡可能的列出來(lái),然后判定是否存在味廊,只要有存在的就可以認(rèn)為機(jī)器是越獄了蒸甜。

 #define ARRAY_SIZE(a) sizeof(a)/sizeof(a[0])    
      const char* jailbreak_tool_pathes[] = {    
      "/Applications/Cydia.app",    
      "/Library/MobileSubstrate/MobileSubstrate.dylib",    
      "/bin/bash",    
      "/usr/sbin/sshd",    
      "/etc/apt"    
};   
- (BOOL)isJailBreak    
{    
    for (int i=0; i<ARRAY_SIZE(jailbreak_tool_pathes); i++) {    
        if ([[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithUTF8String:jailbreak_tool_pathes[i]]]) {    
            NSLog(@"The device is jail broken!");    
            return YES;    
        }    
    }    
    NSLog(@"The device is NOT jail broken!");    
    return NO;    
}
  • 判斷cydia的URL scheme,URL scheme是可以用來(lái)在應(yīng)用中呼出另一個(gè)應(yīng)用余佛,是一個(gè)資源的路徑柠新,這個(gè)方法也就是在判定是否存在cydia這個(gè)應(yīng)用。
- (BOOL)isJailBreak    
{    
    if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"cydia://"]]) {    
        NSLog(@"The device is jail broken!");    
        return YES;    
    }    
    NSLog(@"The device is NOT jail broken!");    
    return NO;    
} 
  • 讀取系統(tǒng)所有應(yīng)用的名稱(chēng)衙熔,這個(gè)是利用不越獄的機(jī)器沒(méi)有這個(gè)權(quán)限來(lái)判定的登颓。
#define USER_APP_PATH  @"/User/Applications/"    
- (BOOL)isJailBreak    
{    
    if ([[NSFileManager defaultManager] fileExistsAtPath:USER_APP_PATH]) {    
        NSLog(@"The device is jail broken!");    
        NSArray *applist = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:USER_APP_PATH error:nil];    
        NSLog(@"applist = %@", applist);    
        return YES;    
    }    
    NSLog(@"The device is NOT jail broken!");    
    return NO;    
} 
  • 使用stat方法來(lái)判定cydia是否存在
    這個(gè)方法本身思路還是通過(guò)判定cydia應(yīng)用,但方法是用的stat函數(shù)红氯,同時(shí)會(huì)判定是否有注入動(dòng)態(tài)庫(kù)框咙。
#define CYDIA_APP_PATH  "/Applications/Cydia.app"    
int checkInject()    
{    
    int ret;    
    Dl_info dylib_info;    
    int (*func_stat)(const char*, struct stat*) = stat;    
        
    if ((ret = dladdr(func_stat, &dylib_info)) && strncmp(dylib_info.dli_fname, dylib_name, strlen(dylib_name))) {    
        return 0;    
    }    
    return 1;    
}    
    
int checkCydia()    
{    
    // first ,check whether library is inject    
    struct stat stat_info;    
        
    if (!checkInject()) {    
        if (0 == stat(CYDIA_APP_PATH, &stat_info)) {    
            return 1;    
        }    
    } else {    
        return 1;    
    }    
    return 0;    
}    
    
- (BOOL)isJailBreak    
{    
    if (checkCydia()) {    
        NSLog(@"The device is jail broken!");    
        return YES;    
    }    
    NSLog(@"The device is NOT jail broken!");    
    return NO;    
} 
  • 讀取環(huán)境變量
    這個(gè)DYLD_INSERT_LIBRARIES環(huán)境變量,在非越獄的機(jī)器上應(yīng)該是空痢甘,越獄的機(jī)器上基本都會(huì)有Library/MobileSubstrate/MobileSubstrate.dylib
char* printEnv(void)    
{    
    charchar *env = getenv("DYLD_INSERT_LIBRARIES");    
    NSLog(@"%s", env);    
    return env;    
}    
    
- (BOOL)isJailBreak    
{    
    if (printEnv()) {    
        NSLog(@"The device is jail broken!");    
        return YES;    
    }    
    NSLog(@"The device is NOT jail broken!");    
    return NO;    
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末喇嘱,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子塞栅,更是在濱河造成了極大的恐慌者铜,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件放椰,死亡現(xiàn)場(chǎng)離奇詭異作烟,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)砾医,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)拿撩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人如蚜,你說(shuō)我怎么就攤上這事压恒。” “怎么了错邦?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵探赫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我撬呢,道長(zhǎng)伦吠,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮讨勤,結(jié)果婚禮上箭跳,老公的妹妹穿的比我還像新娘晨另。我一直安慰自己潭千,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布借尿。 她就那樣靜靜地躺著刨晴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪路翻。 梳的紋絲不亂的頭發(fā)上狈癞,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音茂契,去河邊找鬼蝶桶。 笑死,一個(gè)胖子當(dāng)著我的面吹牛掉冶,可吹牛的內(nèi)容都是我干的真竖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼厌小,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼恢共!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起璧亚,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤讨韭,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后癣蟋,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體透硝,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年疯搅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了濒生。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秉撇,死狀恐怖甜攀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情琐馆,我是刑警寧澤规阀,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站瘦麸,受9級(jí)特大地震影響谁撼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一厉碟、第九天 我趴在偏房一處隱蔽的房頂上張望喊巍。 院中可真熱鬧,春花似錦箍鼓、人聲如沸崭参。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)何暮。三九已至,卻和暖如春铐殃,著一層夾襖步出監(jiān)牢的瞬間海洼,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工富腊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坏逢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓赘被,卻偏偏與公主長(zhǎng)得像是整,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子帘腹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • http://blog.csdn.net/sakulafly/article/details/21159257 判...
    wzf_taker閱讀 2,200評(píng)論 0 1
  • 如果你看完書(shū)中的所有例子贰盗,你很可能已經(jīng)做完你的實(shí)驗(yàn)和在已經(jīng)越獄的iPhone上的研究。因?yàn)楹驮S多人一樣阳欲,幾乎所有的...
    fishmai0閱讀 16,084評(píng)論 2 42
  • 在應(yīng)用開(kāi)發(fā)過(guò)程中舵盈,我們希望知道設(shè)備是否越獄,正以什么權(quán)限運(yùn)行程序球化,好對(duì)應(yīng)采取一些防御和安全提示措施秽晚。 那么,到底應(yīng)...
    無(wú)灃閱讀 1,246評(píng)論 0 3
  • 題目 為Date類(lèi)實(shí)現(xiàn)如下成員:構(gòu)造器筒愚,可以初始化年赴蝇、月、日巢掺。大于句伶、小于、等于(> 陆淀、< 考余、==)操作符重載,進(jìn)行...
    一般的路人丙閱讀 264評(píng)論 0 0
  • 裁一壺清水化酒轧苫,品得平淡如辛辣入喉 一盞孤燈楚堤,伴著夢(mèng)入眠 從此孤單如筆墨書(shū)扉 上面篆寫(xiě)著:再等我 待到花開(kāi)滿(mǎn)峰,何...
    白淺夏閱讀 424評(píng)論 3 5