利用iMazing修改iOS应用数据

0x81 iMazing

iMazing是一个第三方iOS设备管理工具,它的功能足够强大,在遵循设备通信协议的前提下提供了足够多的功能,比如单应用数据备份、同步设备数据、访问wrapped文件系统等等。利用iMazing的数据备份功能,我们可以手动修改备份后的数据,然后将修改后的数据还原到手机,从而达到某种目的,比如我们需要修改某些小游戏的数据。

0x82 备份应用数据

iOS设备如果没有越狱,是没有办法直接访问设备的文件系统,更不必说是直接修改应用数据。当然,没有拿到root权限的Android也是无法做到的,Android的data分区也是权限分明并且较新的版本上都是采用加密数据存储的方式,我们只能想一些曲线救国的方式。

iOS11.3的越狱刚出没多久,并且最近的支持直到11.4 beta1,如果越狱过的设备重启还会丢失越狱状态,需要重新操作。为了测试新iOS的特性,我早早讲手头的小8升级到了iOS12,截至文章时间最新测试版是12.0 beta9。iOS12现在想要越狱是不可能的,因此只能找找其他方法,比如先备份再修改然后还原。

要使用这种方式完成我们的需求,我们要做的第一件是就是对应用数据进行备份。Apple钦定的备份工具是iTunes,但我相信每一个是用过它的人都想吐槽,尤其是老版本,所以它于我的功能也就是同步个自定义铃声,而对于它的备份功能,确实它可以进行备份但是备份的数据是整个手机的使用数据,至少我没有发现合适的方法达到我的要求。于是iMazing出现了,iMazing颜值很高并且提供macOS客户端,简直不能再贴心了,最新版本支持iOS12,正好符合我们的要求。(PS: iMazing提供付费服务,可以完成更多的功能,当然我不太需要,至少免费版目前对我而言够用,当然这里指的是备份还原)

iMazing Home

左边Panel上方是我当前连接的手机,下方是之前的备份,这个old backup是连接macOS时itunes备份的,为了方便使用,我又用iMazing备份了一遍,有别于iTunes的备份目录~/Library/Application Support/MobileSync/Backup,iMazing备份在~/Library/Application Support/iMazing/Backups这个目录,弄这么一个备份有个好处,就是备份应用数据时可以选择从旧的备份中导出。以凉屋的Soul Knight为例,我们选择设备的Manage Apps,右键选择Backup App Data

Backup Data

备份导出后而我们便开始修改。

0x83 修改应用数据

经过前面的操作,我们用iMazing导出了一个imazingapp文件:

zipfile

imazingapp

这个文件其实是个压缩包,我们可以使用zip命令解压,解压后的内容如上图,如果你对macOS应用在~/Library里的组织方式比较熟悉,那你会很自然地理解导出的iOS应用数据的组织关系。我们要修改的文件位于Container/Library/Preferences/目录下,简单的配置数据通常是个plist文件,对于一些文件的savefile也可以自己找寻一下,如果这个文件没有加密,那你可以放心大胆的修改。

修改完之后,我们把修改后的文件打回imazingapp文件,为了干净我们删掉各级目录的.DS_Store文件:

zip

处理完新的imazingapp文件,我们就可以还原数据了。

0x84 还原应用数据

还原数据就很简单了,还是之前的应用管理页面,我们右键选择Restore App Data:

Restore Data

iMazing,会开始尝试恢复,由于使用的是iTunes的还原机制,因此会要求你关闭Find My iPhone功能,并在回复完成时重启,这里有一点需要注意,重启完成后一定不要急着拔掉数据线连接,由于恢复机制的特殊性,如果提前拔掉,就需要重新进行设备初始化设定,虽然我们的数据不会受影响但是毕竟是麻烦,如果连接设备知道开机,并在iMazing上确认完毕,我们将只需要重新确认一下iCloud条款或者重新登陆一下AppleID以确保云服务的正确使用。

到此为止,iOS应用的数据修改就完成了,可以游戏作弊了哈哈哈:P