iOS逆向----绕过越狱检测
2018-11-21 本文已影响9人
捡书
当然有手动绕过越狱检测的办法,比如自己利用Fishhook或者OC的runtime机制去替换越狱检测的函数,这些都是比较稳妥的方法,本篇文章主要介绍的是自动绕过检测的一个工具xCon。
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反汇编出来从而了解程序的具体逻辑:
➜ 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来判断设备是否越狱