iOS系统越狱方式浅谈
在前面几篇文章中,笔者始终有一个重要问题未做说明,因为该系列都是以越狱环境做开发,那么到底如何越狱呢?下面就以如何越狱,以及越狱中遇到的诸多问题展开讨论。
越狱基础知识
越狱工具,是利用漏洞获取iOS设备的root权限,从而控制系统。越狱工具安装后会释放必备命令(如dpkg,rm,kill,bash,...)和越狱应用商店(Cydia,Sileo),同时安装Hook框架(Substrate/Substitute)。 iOS10及以下的越狱均是完美越狱,而11及以上均为不完美越狱,每次重启后反越狱状态会掉。目前出现的越狱工具主要有3种安装方式:IPA签名安装,网页安装,USB安装,其中网页安装是利用iOS10的Safari漏洞,将越狱工具(如h3lix)安装到系统中。笔者目前使用的是Checkra1n,直接USB连接手机即可安装,无需考虑签名等问题。下表为iOS8以后的越狱工具统计,更详细的越狱工具可在这里查到https://www.reddit.com/r/jailbreakhttps://www.theiphonewiki.com
Hook框架(Substrate/Substitute),实现了C函数的内联Hook以及ObjC消息的Hook。Substitute本为Substrate的一个替代品,然而目前不太稳定,有很多函数会Hook失败,所以很多基于Substrate的软件,在Substitute下会崩溃。笔者用过Unc0ver和Checkra1n,Unc0ver默认安装Substitute,而Checkra1n默认安装Substrate。Substrate/Subtitute是打包在越狱工具中的,而除了这2个Hook框架以外,Frida内自带一套Hook框架,另外Dobby(前身Hookzz)是一款稳定性不错的的开源Hook框架(优于Substitute)(注1)。另外某些越狱工具内置了作者自己开发的hook框架。
- 越狱工具之间对Hook框架的争夺也是白热化,Unc0ver越狱后,会强制屏蔽掉dlsym获取MSHookFunction函数,即便用户手动加载了Substrate或者Hookzz,也会获取不到函数!!!,这波操作太骚
3年内常见越狱工具一览
注意: Palera1n支持有根和无根越狱,支持A12以下(6S-X)的设备;Dopamine只支持无根越狱,支持A12及以上(XR-?)的设备
提供企业签越狱工具的网站
https://app.ignition.fun
https://next.tweakboxapp.com
https://geekben.org/apps
https://www.niqiuge.com/pc/yy/index.php?id=1
https://app.initnil.com/
http://jabizb.cn/
https://erjihui.vip/
https://yueyu.cydiavip.com/
https://app.ambier.cn/#/ios
https://www.cydialmg.vip/yueyu/
https://www.niqiuge.com
http://jb.aptso.cn/
https://app.nk8686.com/
https://yueyu.cydiami.com/
https://www.limufang.com/post/509.html#i-5
http://kzddck.cn/cer/
网页越狱(iOS9-10)
http://ai.id64.com/jian/ios10/index.html (10 64bit)
http://ai.id64.com/jian/xia/doubleH3lix/index.html (10 64bit)
http://ai.id64.com/jian/tiao1/H3lix/index.html (10 32bit)
http://ai.id64.com/yyu/index.html (9.2-9.3)
http://jb92.i4.cn (9.2-9.3)
越狱工具的安装
以上谈到了如何获取越狱工具,下面来谈如何安装IPA。苹果系统在非越狱状态下,安装的任何App都要对IPA做签名才可以安装。苹果的签名有以下几种
- 个人签,年费99美元,设备数限制为100,有效期1年
- 企业签,年费299美元,无设备数限制,只能公司内部使用不能发布到AppStore,安装后需手动信任证书
由此,IPA的安装也有以下方式
- 下载企业签版App,直接安装即可(Safari下载IPA——信任企业签——安装成功)。这种方式无需考虑签名问题,但是由于经常被举报导致企业签掉签,从而无法下载安装。
- 若越狱工具提供源码,那么可以用XCode编译出IPA,使用自己的appid签名安装即可
- 若越狱工具不提供源码,那么下载其包含的IPA,然后用CydiaImpactor/AltDeploy/AltStore进行签名。此类工具需要用到苹果账号
- 如果使用Checkra1n,那么只需要将手机使用USB连电脑进行安装即可,整个过程较为简单且失败率接近0
CydiaImpactor使用
支持Windows/Linux/Mac。下载安装http://www.cydiaimpactor.com,将手机通过USB连接电脑,CydiaImpactor菜单——设备——安装App,输入苹果账号密码即可自动安装。注意如果苹果账号开启了两步验证那么需要输入的不是密码而是16位App专用密码,App专用密码在这里生成:https://appleid.apple.com/account/manage。笔者一直使用该工具安装IPA。
AltStore使用
支持Windows/Mac。下载安装https://altstore.io,将手机通过USB连接电脑,在AltServer中安装AltStore,在手机中输入苹果账号,AltStore便安装于手机中,在AltStore中安装IPA即可。
AltDeploy使用
支持Mac。下载安装https://github.com/pixelomer/AltDeploy/releases,将手机通过USB连接电脑,打开Mac自带邮箱App,然后输入苹果账号安装IPA。AltDeploy是基于AltStore开发的,与AltStore不同的是AltStore运行在手机端,更方便一些。
重签&续签
签名快到期时需要进行重签,避免过期了无法运行App。AltStore可以进行手动重签。而Reprovision(Cydia里安装)可以自动续签。
第三方UDID签
此类在线服务不需要电脑只需要iPhone就可以签名,此类工具是整合了多个开发者账号做成的,按月按设备收费,通常一个月几十块钱比较贵,在2020年前后比较火,github上有项目可以自动搭建这种呢udid签平台
SideLoadly
用侧载技术签名IPA,支持USB&Wifi连接手机进行签名,支持iOS7以上的系统,只需要一个AppID账号即可。方便且免费
TrollStore
利用系统签名漏洞进行永久签,是个IPA,需要先用AppID将自身IPA安装到iOS系统(需要电脑),然后就可无限制签名任意App。支持iOS14-17.0系统
轻松签/全能签等
利用TrollStore做成的第三方服务,无需电脑,支持iOS14-17.0系统