1. 程式人生 > >iOS逆向----繞過越獄檢測

iOS逆向----繞過越獄檢測

當然有手動繞過越獄檢測的辦法,比如自己利用Fishhook或者OC的runtime機制去替換越獄檢測的函式,這些都是比較穩妥的方法,本篇文章主要介紹的是自動繞過檢測的一個工具xCon

xCon可以從Cydia中安裝,是目前為止最強大的越獄檢測工具。由n00neimp0rtant與Lunatik共同開發,它據說patch了目前所知的所有越獄檢測方法(也有不能patch的應用)。估計是由於影響太大,目前已不開放原始碼了。

安裝方法:
首先在Cydia中新增源
然後進入新增的源中選擇xCon下載安裝,安裝完之後需要重啟SpringBoard。

安裝xCon後,會有兩個檔案xCon.dylib與xCon.plist出現在裝置/Library/MobileSubstrate/DynamicLibraries目錄下
進入/Library/MobileSubstrate/DynamicLibraries目錄下,檢視檔案,發現xCon.dylib和xCon.plist

Skys-iPhone:/Library/MobileSubstrate/DynamicLibraries root# ls
MobileSafety.dylib*  [email protected]  xCon.dylib*
MobileSafety.plist   patcyh.plist   xCon.plist

xCon.plist

該檔案為過濾檔案,標識在呼叫com.apple.UIKit時載入xCon.dylib
檢視檔案內容如下

Skys-iPhone:/Library/MobileSubstrate/DynamicLibraries root# cat xCon.plist
{
	Filter = {
		Bundles = (com.apple.UIKit);
	};
}
Skys-iPhone:/Library/MobileSubstrate/DynamicLibraries root#

xCon.dylib

首先我們利用scp命令將檔案拷貝到Mac上,然後使用otool工具將該檔案的text section反彙編出來從而瞭解程式的具體邏輯:

➜  ~ scp -P2222 [email protected]:/Library/MobileSubstrate/DynamicLibraries/xCon.dylib ~/Desktop
[email protected]'s password:
xCon.dylib                                         100%  467KB   6.5MB/s   00:00
➜  ~ cd Desktop
➜  Desktop otool -tV xCon.dylib >xContextsection
➜  Desktop

可以根據檔案中的函式名,同時結合該工具的原理以及越獄檢測的一些常用手段來猜其邏輯,例如越獄檢測方法中的檔案系統檢查,會根據特定的檔案路徑名來匹配,我們可以使用strings檢視檔案中的內容,看看會有哪些檔案路徑名。

➜  Desktop strings xCon.dylib
ipv4
ipv6
Not Found
%s [%s]
CFBundleIdentifier
CFBundleShortVersionString
__TEXT
__text
/System/Library/Lockdown/Services.plist
/var/mobile/Library/Caches/com.apple.mobile.installation.plist
/private/
/dev/
/bin/
/var/mobile/Library/Preferences
com.apple.
[email protected][email protected]"NSString"[email protected]"NSString"8^c12
/etc/fstab
/private/etc/fstab
/var/lib/xcon/fstab
/var/mobile/Applications/
/var/mobile/Containers/Data/Application/
_ptrace
/Applications
/Library/Activator
/Library/Flipswitch
/Library/Ringtones
/Library/Wallpaper
/Library/Switchs
/usr/libexec
/usr/lib/pam
/usr/arm-apple-darwin9
/usr/include
/usr/share
/usr/lib/python2.5
/var/lib/dpkg/info
/var/lib/xcon/paths-deny
......

通過分析,xCon會繞過以下越獄檢測方
(1)根據是否存在特定的越獄檔案,及特定檔案的許可權是否發生變化來判斷裝置是否越獄
(2)根據沙箱完整性檢測裝置是否越獄
(3)根據檔案系統的分割槽是否發生變化來檢測裝置是否越獄
(4)根據是否安裝ssh來判斷裝置是否越獄