当然有手动绕过越狱检测的办法,比如自己利用Fishhook或者OC的runtime机制去替换越狱检测的函数,甚至可以使用frida来Hook函数的返回值。这些都是比较稳妥的方法,本篇文章主要介绍的是自动绕过检测的工具xCon。

xCon会在iOS10.3以上系统的设备上导致Cydia崩溃,因此强烈建议先安装Filza后再安装xCon,避免Cydia崩溃后无法移除xCon的尴尬局面
iOS11之后的手机绕过越狱检测看这里
xCon可以从Cydia中安装,是目前为止*强大的越狱检测工具。由n00neimp0rtant与Lunatik共同开发,它据说patch了目前所知的所有越狱检测方法(也有不能patch的应用)。估计是由于影响太大,目前已不开放源码了。

安装方法:
首先在Cydia中添加源http://xcon.crazy.net
然后进入添加的源中选择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* patcyh.dylib@ 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.
v16@?0@”NSString”4@”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来判断设备是否越狱