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

2021-09-10 08:39:02 字數 1161 閱讀 3371

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

可以嘗試用 nsfilemanager 判斷裝置是否安裝了越獄外掛程式。

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

const char* jailbreak_tool_pathes = ;

#pragma mark - 判斷裝置是否被越獄

+ (bool)isjailbreak

未越獄裝置是無法讀取資料的,越獄裝置是可以獲得乙個列表。

使用stat系列函式檢測cydia等工具:

#import void checkcydia(void)

}

可以看看stat是不是出自系統庫,有沒有被攻擊者換掉:

#import void checkinject(void)

}輸出結果為:

如果結果不是 /usr/lib/system/libsystem_kernel.dylib 的話,那就100%被攻擊了。

如果 libsystem_kernel.dylib 都是被攻擊者替換掉的……

動態庫檢測:

#import void checkdylibs(void)

}

通常情況下,會包含越獄機的輸出結果會包含字串: library/mobilesubstrate/mobilesubstrate.dylib 。

結果:

通過檢測程式當前執行的環境:

#include void printenv(void)

結果:2017-05-23 15:02:30.232140+0800 testsecurityadvance[16888:919836] ===(null)

未越獄裝置返回的是 null。

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

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

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

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

非越獄iOS裝置的遠端控制實現原理

webdriveragent是facebook基於xcuitest推出的ios的移動測試框架,支援目前市面上所有ios9以上的裝置。webdriveragent 作為新的基於 xcuitest 的測試工具,有其固有優點 具體使用 請檢視官網 要注意的 1 taget 證書要設定成開發者的證書 2 在...