iOS越獄的判定方法

2021-07-05 03:36:28 字數 4464 閱讀 6043

蘋果是非常看重產品的安全性的,所以給使用者設計了一套複雜的安全機制。這讓喜愛自由,崇尚一切開放的程式設計師們極度不爽,於是越獄就成了蘋果和黑客們反覆鬥法的場所。總體來說,越獄可以讓我們隨意安裝、共享應用,但確實也降低了裝置的安全性,會給一些惡意應用提供方便之門。有時我們的應用希望知道安裝的裝置是否已經越獄了,顯然,蘋果官方不會給出解決方案來的,那麼我們怎麼辦呢?因為越獄後會自動安裝cydia,所以我們可以從這方面入手;也可以借助許可權問題,去讀取應用的列表;還可以去讀環境變數,不越獄的機器應該是讀取不到任何內容的。

下面我們乙個乙個方法來講:

1. 判定常見的越獄檔案

/library/mobilesubstrate/mobilesubstrate.dylib

/bin/bash

/usr/sbin/sshd

/etc/apt

這個表可以盡可能的列出來,然後判定是否存在,只要有存在的就可以認為機器是越獄了。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#define array_size(a) sizeof(a)/sizeof(a[0])

constchar* jailbreak_tool_pathes = ;

- (bool)isjailbreak

}

nslog(@"the device is not jail broken!");

returnno;

}

2. 判斷cydia的url scheme

url scheme是可以用來在應用中撥出另乙個應用,是乙個資源的路徑(詳見《ios中如何撥出另乙個應用》),這個方法也就是在判定是否存在cydia這個應用。

1

2

3

4

5

6

7

8

9

01.- (bool)isjailbreak

02.

07.nslog(@"the device is not jail broken!");

08.returnno;

09.}

3. 讀取系統所有應用的名稱

這個是利用不越獄的機器沒有這個許可權來判定的。

1

2

3

4

5

6

7

8

9

10

11

12

- (bool)isjailbreak

nslog(@"the device is not jail broken!");

returnno;

}

4. 使用stat方法來判定cydia是否存在

這個方法本身思路還是通過判定cydia應用,但方法是用的stat函式,同時會判定是否有注入動態庫。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

intcheckinject()

return1;

}

intcheckcydia()

}else

return0;

}

- (bool)isjailbreak

nslog(@"the device is not jail broken!");

returnno;

}

5. 讀取環境變數 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

這個dyld_insert_libraries環境變數,在非越獄的機器上應該是空,越獄的機器上基本都會有library/mobilesubstrate/mobilesubstrate.dylib

char* printenv(void)

- (bool)isjailbreak

nslog(@"the device is not jail broken!");

returnno;

}

當然,判定乙個裝置是否越獄時,可以多種方法並用以確保準確。這裡我還想說的是越獄有完美越獄還有非完美越獄,這本身就不是官方***的行為,所以情況也是複雜多變。ios7針對沙盒機制也有了改進公升級,有些情況對新的版本或許是不合適的,這點還需要實際情況實際處理。另外,還有fork乙個子執行緒,看返回值等一些方法,這裡也不再一一枚舉。

最後,越獄畢竟會帶來不安全因素的增加,尤其是金融工具裝的比較多的情況下,強烈不推薦越獄。

iOS裝置是否越獄的判斷方法

蘋果是非常看重產品的安全性的,所以給使用者設計了一套複雜的安全機制。這讓喜愛自由,崇尚一切開放的程式設計師們極度不爽,於是越獄就成了蘋果和黑客們反覆鬥法的場所。總體來說,越獄可以讓我們隨意安裝 共享應用,但確實也降低了裝置的安全性,會給一些惡意應用提供方便之門。有時我們的應用希望知道安裝的裝置是否已...

iOS 出iOS越獄渠道ipa包的方法

方法1 使用itunes匯出ipa step0.選中要出包的target的scheme step1.edit scheme,設定run的build config為release step2.build for run 關於簽名 這種方法使用developer簽名即可打包。渠道會重新簽名的,所以這種方...

ios裝置越獄

越獄的目標 手機更新到最新版本,再越獄 目前最新6.1.3,不能越獄 步驟 手機設定密碼要取消 檢視手機系統版本,並備份手機 ios 6.x 使用evasion 6.1越獄教程 ios 5.x 5.1.1越獄教程 其他系統版本,網路搜尋 檢視是否越獄成功 是否已安裝cydia應用程式 注意事項 越獄...