iOS防護 越獄檢測

2021-09-26 07:33:22 字數 2459 閱讀 7922

首先我們進行常規的檔案路徑檢測:

//這裡都是一些越獄後的手機帶的一些框架和工具,未越獄的手機是裝不上的。

-(void)isok0 if(

[[nsfilemanager defaultmanager] fileexistsatpath:aptpath])if

([[nsfilemanager defaultmanager] fileexistsatpath:cydiapath]

)

if([

[nsfilemanager defaultmanager] fileexistsatpath:aptpath])if

([[)

if([[

nsfilemanager defaultmanager] fileexistsatpath:

mobile])

if([[

nsfilemanager defaultmanager] fileexistsatpath:bash])if

([[nsfilemanager defaultmanager] fileexistsatpath:sshd])if

([[nsfilemanager defaultmanager] fileexistsatpath:sd]

)

}

這裡直接exit(0)是為了防止一些繞過策略,比如替換方法,導致檢測**被繞過。如果檢測到手機越獄,直接退出軟體。

當然了,攻擊者可以直接通過替換系統的fileexistsatpath函式,讓他一直返回false,從而繞過軟體路徑的檢測。這時候就需要一些c語言的函式去做更加精確的檢測。

以下函式需要引用標頭檔案:

#import

#import

#import

#import

-

(void)isok1 if(

0stat(,

&stat_info))if

(0stat

("/var/lib/cydia/"

,&stat_info))if

(0stat

("/var/cache/apt"

,&stat_info))if

(0stat

("/var/lib/apt"

,&stat_info))if

(0stat

("/etc/apt"

,&stat_info))if

(0stat

("/bin/bash"

,&stat_info))if

(0stat

("/bin/sh"

,&stat_info))if

(0stat

("/usr/sbin/sshd"

,&stat_info))if

(0stat

("/usr/libexec/ssh-keysign"

,&stat_info))if

(0==stat

("/etc/ssh/sshd_config"

,&stat_info))}

可能存在stat也被hook了,可以看stat是不是出自系統庫,有沒有被攻擊者換掉,這種情況出現的可能性不大,如果結果不是 /usr/lib/system/libsystem_kernel.dylib 的話,那就100%被攻擊了。

-

(void)isok2

}}

可以檢索自己的應用程式是否被鏈結了異常動態庫,列出所有已鏈結的動態庫,通常情況下,會包含越獄機的輸出結果會包含字串: library/mobilesubstrate/mobilesubstrate.dylib :

-

(void)isok3

}}

如果攻擊者給mobilesubstrate改名,但是原理都是通過dyld_insert_libraries注入動態庫,我們可以檢視一下環境變數:

-

(void)isok4

}

雖然這裡用到的是c語言檢測函式,但這些函式被hook的可能性也是存在的,比如fishhook。。

如果真有大佬手動hook這些函式或者直接修改二進位制的話,那也沒啥好防的,大佬們隨便吧。。

所以也印證了那句話:沒有絕對的安全,你唯一能做的就是拖延攻擊者的腳步。

誰tm會hook程式的初始化函式。。

另外越獄檢測函式最好不要出現jailbreak,或者canijailbreak,或者antijailbreak這種字段,很容易被定位到。

首先我們進行常規的檔案路徑檢測:

//這裡都是一些越獄後的手機帶的一些框架和工具,未越獄的手機是裝不上的。

iOS安全防護 越獄檢測 二次打包檢測 反除錯

1 檢測是否被注入,阻止cycript等的動態庫注入。2 在 xcode 編譯選項中 other linker flags 中新增 wl,sectcreate,restrict,restrict,dev null 標識。注 這個方案只適合ios10.0以下系統,而且個別系統打出來的包還會發生cras...

裝置安全篇 IOS的越獄檢測 (二)

ios 越獄 ios jailbreaking 是用於獲取蘋果公司便攜裝置作業系統ios最高許可權的一種技術手段,使用者使用這種技術及軟體可以獲取到 ios 的最高許可權,甚至可能可以進一步解開運營商對手機網路的限制。手機越獄後會面臨更多的安全風險,不建議對ios裝置進行越獄。在開發中可以針對越獄裝...

ios裝置越獄

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