iOS应用程序安全

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来判断设备是否越狱

上一篇下一篇

猜你喜欢

热点阅读