前言
本文仅作为技术分享,对于一些iOS SDK开发以及维护所遇到的场景问题进行处理,例如:
-
客户想提前知晓线上App集成我们SDK后,是否会有SDK兼容性问题,例如Crash,符号冲突
-
客户线上App集成了我们SDK,出现了问题,如何进行排查
-
我们想测试SDK在某一款App中是否功能正常
对于这些问题,一般来说我们无法拿到App的源码,想要处理这些场景,就需要拿到客户App文件并注入代码,接下来我们从 iOS越狱、frida砸壳、MonkeyDev来讲述如何实现。
iOS 越狱
为什么需要越狱?因为正常情况下,我们无法从手机中获取到App的包文件,只能通过越狱机 动态砸壳 获得ipa包,使用目前主流的 unc0ver 进行越狱。
unc0ver
对于 iOS 的越狱,这里使用的是 unc0ver ,最新版本支持 iOS 11 - iOS 14.3 版本的非完美越狱,这里采用使用 iphone 5S, iOS 12.4.9 为例,进行 非完美越狱
越狱有分为“完美越狱”和“不完美越狱”。完美越狱简单地说就是越狱很彻底,破解了操作系统的读写权限,完美越狱完成以后可以自由使用,开关机,下载等。称为“完美越狱”。而不完美越狱,则表示iPhone或iPad不能像越狱之前一样随时可以关机,关机重启后越狱失效,需要再进行越狱操作。
对于 unc0ver ,我们使用 Xcode + iOS App Signer 方式进行安装 unc0ver App
通过上述步骤生成的 unc0ver ipa 是符合苹果要求的,你也可以通过 i4助手(爱思助手) 进行快捷安装到手机中。
打开 unc0ver,点击 Jailbreak 进行越狱,期间弹出 REBEL 不要管它,叉掉,继续。提示你重启就重启,该允许的允许,然后继续打开 unc0ver 继续,直到 unc0ver 完成越狱ÿ