Python实战社群
Java实战社群
长按识别下方二维码,按需求添加
扫码关注添加客服
进Python社群▲
扫码关注添加客服
进Java社群▲
作者 | Peter Steinberger
来源 | steipete's blog
https://steipete.com/posts/jailbreaking-for-ios-developers/
iOS 开发社区好像很少讨论越狱。很不幸,因为越狱实在是太神奇了。在这里,我们会介绍一些您可以通过越狱使用的非常棒的功能。
越狱的定义及合法性
iOS越狱是一项特权升级,目的是绕开 Apple 对 iOS,tvOS 和 watchOS 施加的软件限制。它通过一系列内核补丁完成的。越狱允许以 root 权限访问 iOS,从而允许下载和安装很多应用程序和扩展,而这些应用程序和扩展是无法通过官方 Apple App Store 获得的。
越狱合法吗?这取决于你所在的国家/地区,在奥地利,德国,加拿大,印度,新西兰,英国和美国是合法的。除了最新的 iOS 13.5 越狱之外,自 iOS 10 以来的所有主要越狱都是基于公开的漏洞利用程序,这些漏洞先前已向Apple 通报。
如果您不想冒险越狱,仍然可以使用 AltStore https://altstore.io/ 安装某些应用程序,该应用程序会在 Mac 上对应用程序进行签名。
动机
越狱并不值得鼓励,因为它可以用于盗版应用程序。但是还有许多值得探索的有趣的原因,例如增强可访问性:
• 安全研究
• 使用 tweak 增强 iOS
• 增强其他应用程序(例如,在Netflix上添加 Tomatometer 得分或为 YouTube 禁用广告)
• 安装在 App Store 上不允许的应用程序,因为它们可能会用于侵犯版权的行为
• 锁屏/主屏幕上的小部件。
• 通过 SnowBoard 进行主题设置
• 给开发人员的便利(SSH进入设备,检查视图层次结构,适当的文件浏览器)
• 访问非越狱无法访问的硬件功能
• 位置欺骗
• 解决网络共享限制(TetherMe)
• 改善可用性(例如盲人,特殊需求)
许多 tweak 要么修改应用程序本身,要么集成到“设置”中:
提示:某些应用程序(例如银行业务)可能包含越狱检测功能,并且如果它们检测到 Cydia,则将无法运行。但是,也可以通过适当的 tweak 来规避。
越狱的现状
没有比现在更好的越狱时机了。从 iOS 10-13 开始,几乎每个版本都可以越狱,包括刚刚发布的 iOS 13.5。这也有些令人担忧,因为漏洞利用需要有安全漏洞,而我们现在处于这样一个阶段,由于漏洞已经太多了,因此像 Zerodium 这样的漏洞利用平台都不再愿意为 iOS 漏洞利用付费了。
Reddit 对当前越狱可用性情况有一个很好的概览。截至2020年5月,有两个有趣的点:
• checkra1n 使用 Checkm8 漏洞 -- 这是 iOS bootrom 中的一个不可修补的漏洞,适用于A5-A11(所有设备,包括iPhone X)中的所有设备
• unc0ver,使用各种黑客手段进行的半完美越狱,仅针对 iOS 13.5 更新。
两者都是半完美越狱。您需要在重启后重新触发越狱以修补内核,以便它可以运行未签名的代码。我建议使用 AltStore 安装 Jailbreak。
两种变体都很稳定,并且不会耗尽电池寿命,也不会阻止使用 iCloud,Apple Pay 或 iMessage 等Apple服务,某些早期变体就是这种情况。同时保留了用户数据保护功能和沙箱安全性。
将软件源添加到 Cydia
Cydia 是 iOS 上最早,最常见的 App Store 替代品。大多数越狱机器会自动安装。随附的 apt-get 打包程序提供了一个便捷的 UI。在早期,您还可以通过Cydia购买应用程序,如今,大多数应用程序都是通过第三方软件源出售的。他们提供免费和付费应用程序(通过PayPal或信用卡支付),并且可以轻松添加到Cydia中。
• Packix https://repo.packix.com/
• Dynastic Repo https://repo.dynastic.co/
• Twickd https://repo.twickd.com/
注意:Cydia 会清理很多过时且无法在 iOS 13 上使用的 tweak。最好查看一下
/r/jailbreak
或iDownloadBlog
以找到有效的 tweak。
保留 SHSH2 Blobs
SHSH blob 是一小块数据,是 Apple 用于 iOS 恢复和更新的数字签名协议的一部分。
在撰写本文时,Apple 已发布了 iOS 13.4.1 和 iOS 13.5,并且他们会在几天后删除13.4.1。通过保存 Blob,您可以随时降级,而无需依赖 Apple。
您可以通过多种方式保存这些内容。我建议使用 blobsaver,因为它会将 blob 保存在磁盘上,而不是依赖于云服务。然后可以使用诸如 futurerestore 之类的工具进行降级(在此处了解更多信息)。把它们存起来,或者会在未来某个时刻派上用场。
有了这些,让我们来探索我们能做什么:
SSL Kill Switch
SSLKillSwitch 2 是一个在设备上禁用 SSL 证书验证的 tweak。这对于查看应用程序通过 MITM 代理(例如Charles)发送的数据很有用。
• 在Cydia上安装 PreferenceLoader(依赖项)和Filza(文件浏览器)。
• 从 GitHub 下载最新版本(deb文件)。
• 打开Filza,导航到 /private/var/mobile/Library/Mobile Documents/com〜apple〜CloudDocs /Downloads
。
• 打开下载的 com.nablac0d3.sslkillswitch2_0.14.deb
(或类似文件),然后按Install。
• 重启 SpringBoard
• 在iOS设置中找到SSLKillSwitch 2。
如果您想知道这在技术层面上是如何工作的,请阅读以下适用于iOS 12的文章 https://nabla-c0d3.github.io/blog/2019/05/18/ssl-kill-switch-for-ios12/,或者直接在GitHub上进行探索。
FLEX应用内调试
FLEX是 @NSExceptional
提供的适用于 iOS 的开源应用程序内调试和探索工具。您可以使用它来做很多有趣的事情。想要将天气背景作为主屏幕背景吗?没问题。
如果想安装,请下载FLEXing,重新启动,然后点击状态栏以加载FLEX。您可以浏览类并使用类似于 Reveal 的3D调试器检查视图层次结构。以下是Spotify:
当然,您也可以检查以 SwiftUI 编写的应用程序,例如流行的 ACHNBrowserUI。早在2013年时,我在大部分情况下都使用了 Reveal,但这是在设备上玩耍的有趣方式。
更多有用的Cydia应用程序和 tweak
• iPadify -- 安装仅限iPad的应用程序,例如Playgrounds,native picture-in-picture
• Prysm -- 个功能丰富的iOS控制中心
• Revealloader -- 加载 reveal 到任何应用程序
• TapTapFlip -- 双击以在“相机”应用中翻转相机
• Supercharge -- 在设备上创建简单的 tweak
• Snapper 2 -- 截取屏幕截图之前
• Frida -- 个动态的工具/代码注入工具包
• FrontCamUnmirror
• CopyLog -- 强大的剪贴板历史记录管理器
• HomePlus -- 主屏幕布局管理器
• FiveIconDock13
• Springtomize 5 -- 调整主屏幕
• Barmoji和DockX -- 在键盘下方添加快速操作
许多 tweak 也是开源的,这是一个很好的学习机会。在iPhoneDevWiki上查看FLEX,Sleeper(iOS警报应用程序的 tweak),Open-Source-Tweaks或集合。
这当然不是一个完整的列表 -- 在 https://twitter.com/AvimanyuRoy3/status/1264346815165431809 查看其它内容。
程序员专栏 扫码关注填加客服 长按识别下方二维码进群
近期精彩内容推荐:
在看点这里好文分享给更多人↓↓