【iOS取证】应用快照

  • A+
所属分类:逆向工程




iPhone手机在使用过程中,不同应用之间的互相切换是再正常不过的事情了。例如正在使用微信聊天,突然有电话呼入,此时微信会自动切换到后台,主界面显示为通话界面;同样正在刷抖音,对方发来一条语音,切换任务到微信,回复完继续切换回来,继续刷。这些都是看似平常的操作,但今天我们并不是教大家如何使用iPhone,而是从取证的角度来看看这些日常的操作,能给取证工作带来哪些信息,这就是我们今天要分享的主题—iOS的应用快照。





【iOS取证】应用快照


上面两张图直观的体现了应用快照,左图是任务切换,右图是应用运行界面。当从一个应用切换至其他应用时,基于用户使用体验,iOS会将APP的当前运行界面做个快照(可以理解为截屏),这样在切换回APP时,依然可以保持在切换前的界面。


应用快照其实是一张图片,只不过它不是常见的jpg、png等格式,其扩展名是.ktx。ktx文件是一种图像格式,它存储的是OpenGL的渲染所需的图像纹理数据,关于ktx的格式标准,感兴趣的可以自行查阅相关资料,本文不做赘述。


下面我们就来看看应用快照的提取和解析。首先我们需要确定其存储路径,经过实验(笔者测试了iPhone X,iOS13.3.1和iPhone 6,iOS12.4.4)发现应用快照的存储路径位于应用程序沙盒中的Library文件夹下,12.4.4版本和13.3.1版本的存储路径略微有差别,这也导致同样的提取方式,不同的效果。


以下分别是两个ios版本的应用快照存储路径:

ios12.4.4的应用快照存储路径/private/var/mobile/Containers/Data/Application/<ApplicationUUID>/Library/Caches/Snapshots/<bundleID>/(下图是iPhone备忘录的应用快照)


【iOS取证】应用快照


ios13.3.1的应用快照存储路径/private/var/mobile/Containers/Data/Application/<ApplicationUUID>/Library/SplashBoard/Snapshots/(下图是微信的应用快照)


【iOS取证】应用快照


通过以上对比,我们发现同样是应用快照,因ios版本的不同,ktx的路径和格式都有变化。我们分别导出文件并通过WinHex工具查看其文件签名,可以看出苹果公司在ktx的标准格式上加入了自己的元素。


【iOS取证】应用快照


既然苹果加入了自己的元素,那么同样苹果旗下的Mac系统,是否兼容其自己的格式呢,经验证,发现在windows下无法直接预览的ktx文件,在Mac系统下可以直接预览,果然自己兼容自己的格式,顺理成章。附一张Mac下预览ktx文件的截图:


【iOS取证】应用快照


大家都知道,应用程序沙盒中的缓存数据,即/Library/Caches下的数据是不允许备份协议对其进行备份的,结合上述ios12.4.4应用快照的路径,我们可判断出基于备份协议的提取方式是无法获取/Library/Caches下的应用快照,需要借助提权提取的方式,才能提取到/Library/Caches下的数据。但凡事都有例外,极个别的小众APP因采用共享目录的方式存储其应用数据,而共享目录下的缓存文件是可以通过备份方式提取的,但是这种类型的应用非常有限,只是针对极少数应用。


但是因为ios13.3.1(快照存储的路径具体从哪个版本开始变化,因条件受限,暂时无法验证)应用快照存储路径的变化(不存储在Library/Caches目录下),通过备份协议,反而可以将这部分数据获取到,这也是前面提到的同样的提取方式,不同的效果。但对于取证人员来说,可以通过备份方式获取到应用快照数据,不得不说是个好消息。


下文主要针对ios13.3.1系统的应用快照进行了分析,在应用程序的沙盒中的Library/SplashBoard/Snapshots文件夹下存储了应用的快照数据。


【iOS取证】应用快照


此目录下通常会有两个文件夹,其中以bundleID开头的文件夹里存储的是应用的启动界面,以sceneID开头的文件夹里存储的就是应用快照。这里以抖音举例说明,如下图所示:


【iOS取证】应用快照


【iOS取证】应用快照


【iOS取证】应用快照


在sceneID开头的文件夹里,我们会发现有两个内容一样,但是大小不同的ktx文件。根据文件的大小及像素信息,可以推断出实际上一大一小的两个文件,分别就是应用的全屏快照和任务切换时所显示的快照,上图是全屏快照,下图是任务切换时的快照。


应用快照就好比应用的“最后一屏”,从取证角度来看,也有自身的局限性。在实验过程中,发现部分应用安全性比较高,在应用快照生成时做了处理,例如虚化处理或黑白屏,导致快照无法体现应用的内容,例如金融类APP。同时发现iOS只保存最近一次的应用快照,历史快照是无法获取的,但是往往这“最后一屏”可能就包含了重要线索,所以解析出每个应用的快照,对于取证人员来讲,有利无弊。下图是一些APP在系统生成快照时的限制。


【iOS取证】应用快照


如前所述,因ktx文件在windows下无法直接预览,需要通过工具进行转换,而且操作繁琐。


【iOS取证】应用快照


作者:高涛,转自:盘古石取证

【iOS取证】应用快照

【iOS取证】应用快照

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: