iOS逆向----绕过越狱检测

当然有手动绕过越狱检测的办法,比如自己利用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来判断设备是否越狱

你可能感兴趣的:(移动应用安全,iOS应用程序安全)