本来前面写了一堆漏洞原理的,但是想了想还是删掉了,也许等我认真研究一下会再写一遍吧。
前言:博主收了一台iPhone 13 mini,用来调试一堆不安全的东西。但是版本是17.0.0,刚刚好是能用TrollStore的最后一个版本,于是就有了这篇文章。
安装并持久化
你一定要记得,越狱之前不要联网!
通过sideload安装‣这一个ipa,似乎是能获得一个任意执行的helper,通过它我们才能把本体装进去。然后在开梯子的情况下用安装TrollStore本体,设置ldid,以及Persistent Helper。大概就是把一个local app给替换成我们的人,这样就算我被保安发现了,还能通过这个人重新进来(233
禁用更新
这个是必须做的,iOS的升级是从底到上的,每一层都是完全覆盖,如果升级了,那你折腾的这些就什么都没有了!
‣
好像是这个吧?安装打开disable就好,然后一定得去系统里看一眼更新还在不在。
安装Bootstrap
为了能够使用root环境以及一些奇怪的shell内容,我们需要安装一个roothide开发的bootstrap,它提供了一个fakeroot环境,把我们需要的jailbreak相关内容放进去,并且做一个类似chroot的操作。这样在程序眼里我们就是拿到了全部权限的fs了。RootHide并不是持久的,我们需要在重新启动后重新引导一遍才有。
然后就有熟悉的Sileo和Zebra了,也能开启openssh,似乎一切都回到了正确的道路上?
软件推荐
这里推荐几个
- AppsDump3:砸壳专用,非常好用
- TrollFools:用来注入dylib的,但是测试下来貌似frida的gadget丢不进去?也许是权限没有设置好。
- TrollNFC:朋友开发的NFC应用,可以添加门禁卡,10刀一年我记得是,不算太贵
- TrollRecorder:通话录音功能
- TrollSpeed:悬浮窗测速栏
- ChargeLimiter:充电限制器,也许有用,但是对于我的小13mini来说限制充电是可怕的。
- UIHaruX Pro:侧边栏,屏幕下雪特效,以及一些小功能
插件
由于我们可以用sileo和zebra,那么正常的修改插件也许就可以用了…吗?答案是不行的。折腾过安卓root的朋友应该知道root检测和应对办法,以及lsposed的作用域这类东西,roothide这个软件也实现了类似的东西,当在设置里启用了某个应用的插件时,它会被放到roothide创建的环境中,并通过link和其他一些方法链接到springboard上的图标里。那么显然,如果安装了插件,我们需要启用这一套操作,才能正常使用插件。
值得注意的是,因为我们没有launchd以及一部分系统组件的权限,我们不能对sprintboard,cc之类的内容做出修改。这太坏了。并且如果你在roothide环境里安装了frida想要调试的话,你需要把调试的app也放进去,并且不能使用spawn来启动,必须要通过attach的方式进入。(如果要从头注入,也许需要研究下怎么才能把frida的gadget丢进去)
但是其实现在用插件的情况已经越来越少了,大部分provider甚至可能直接提供一套dylib可以直接走TrollFools注入。
但是现在来看,我们已经几乎拥有了完全的越狱环境(?可以安装插件,可以修改,可以调试…Almost Everything!
使用体验
用了两天感觉非常舒服!各种方便的entitlements本来会需要及其昂贵的Apple Developer才能使用,但是在漏洞的帮助下都能使用了,安装软件也不需要走sideloadly这样的软件,这简直太棒了。当然这也让我非常震惊,原来社区还有这么多大佬们在支持这个超级超级小众的领域,(安卓root优化现在人也越来越少了,但是细看还是有很多人)。