和 iOS 开发聊聊越狱

早过忘川 提交于 2020-07-27 08:29:52

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 查看其它内容。

程序员专栏 扫码关注填加客服 长按识别下方二维码进群

近期精彩内容推荐:  

 程序员背着电脑送外卖,送单途中帮人修复bug

 一个员工的离职成本,很恐怖!

 这款网络排查工具,堪称神器!

 原来可视化还能这么美...

在看点这里好文分享给更多人↓↓

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!