设备:iPhone8
系统:iOS16.5.1
整设备前看下 https://appledb.dev/ 对照表格找到合适越狱的版本和机型。
越狱步骤很简单,按照 https://ios.cfw.guide/installing-palera1n/ 一步步来就行,额外要注意的必须要用usb-lightning
(如下图),不然像巴斯一样以为手机坏了,导致进不去 DFU_Mode 。
palera1n 初始化时让设置 mobile 用户的 sudo 密码,为了方便使用接下来的工具,建议修改下 root 密码:sudo passwd root
。
palera1n 默认使用 Sileo 作为包管理,默认安装 ssh-server。
分析 AppStore 下载的 App 得先砸壳,这次我尝试了新工具 https://github.com/ChiChou/bagbak 是基于frida的,先在设备上启动 frida-server,rootless模式下的无法用Slieo安装frida-server,我直接使用该作者另一个工具 https://github.com/ChiChou/fruity-frida 用来部署。
# 启动 frida-server
run-frida-server
# 列出 App
bagbak -l
# 砸!
bagbak <bundle_id>
lldb远程调试原理如下,在 iOS 上运行需要对 debugserver
有些小小的改动。
# 挂载DeveloperDiskImage.dmg
## {ios_version} 随意选个版本
hdiutil attach /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/{ios_version}/DeveloperDiskImage.dmg
# 拷贝 debugserver
cp /Volumes/DeveloperDiskImage/usr/bin/debugserver ./
# 卸载 DeveloperDiskImage
hdiutil unmount /Volumes/DeveloperDiskImage/