首先我們進行常規的檔案路徑檢測:
//這裡都是一些越獄後的手機帶的一些框架和工具,未越獄的手機是裝不上的。
-(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應用程式 注意事項 越獄...