《iOS取证实战:调查、分析与移动安全》一3.3 数据存储位置

简介: 本节书摘来自华章出版社《iOS取证实战:调查、分析与移动安全》一书中的第3章,第3.3节,作者(美)Andrew Hoog Katie Strzempka,更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.3 数据存储位置

iPhone拥有标准的文件目录结构,在其中存储着各种文件(参考附件C,展示了从iPhone中恢复的文件夹和文件的全列表)。iPhone硬件没有外置存储插槽,因此它所有的数据都存储在设备内部(与之对应的是,其他设备拥有外置SD卡或仿真SD卡设备)。为了显示iPhone的目录层级,我们使用第5章中提及的技术,通过Wi-Fi远程接入一个已越狱的iPhone。在一台Macintosh电脑上通过SSH连接到iPhone,以查看其文件系统进行研究分析。登录设备后可以通过“1s”命令查看目录内容。
image

审查者感兴趣的大部分数据都存储在“private/var/mobile/”路径下(在iPhone磁盘映像上,“mobile”文件夹将是已挂载映像的根目录);然而,我们也能够在其他位置找到有价值的取证证据。在Mobile文件夹中,有三个子文件夹:Applications、Library和Media。任何下载的程序都将以图3-1中所示的格式存储到Applications文件夹。每个安装的程序都有一个应用程序标识,此标识将作为程序存储的文件夹名称,且此标识在所有设备上都是一样的。

image

所有应用程序文件夹的内容通常都是一样的,包含以下一些标准的文件夹和文件:
Documents文件夹中包含特定程序的相关文件,比如plists、文本文件或图片。
Library文件夹包含缓存数据、Cookies、参数以及WebKit数据(如果程序有应用到此数据)。“参数”通常是用户登录数据的存储位置(如果此应用程序要求用户提供凭证登录)。
应用程序文件夹的数据可被提取以查看私有文件,其中包含了程序依赖代码和其他文件。
tmp文件夹在大多数的应用程序目录下是空的。
下面展示的列表是iPhone应用程序Yahoo!的目录内容,其中一些较容易理解的文件未展示(比如logos和icons)。此架构代表了标准的应用程序目录。我们先看一下最顶层的目录,可看到Documents、Library以及tmp文件夹,然后可看到Yahoo!应用程序文件夹的大致结构。其中,iTunes Artwork和iTunesMetadata.plist文件是标准文件,在所有通过iTunes App Store下载的程序目录下都可以找到它们。我们可以提取实际的应用程序文件数据,以便更详细地了解这个程序的开发情况。在这个例子中,Info.plist文件中可能包含了应用程序版本号、发布时间,或许还有用户的登录数据。不同的应用程序还会有不同的配置文件。在审查者寻找存储的应用程序数据时,普遍都会关注这个区域。

image
image

除已下载的应用程序外,更多常见的数据通常被存储在Library或Media下的特定子文件夹中。例如,短信被存储在Library>SMS路径下一个叫sms.db的文件中。对大多数数据来说,iPhone文件系统的组织结构是相当直观的。
对于一些存储在设备根目录中的文件,为了了解其中存储的数据,我们也将进行少量研究。其中一个例子是存储在设备上的GPS位置信息。许多应用程序经常询问用户是否允许它开启GPS定位功能,包括照相机和视频录像。因此,GPS数据经常可以在图片或视频文件中找到。当iOS 4.0版本发布时,iPhone文件系统的部分设计发生了变化。其中一个主要的转变与一个叫做consolidated.db的文件相关。这个数据库文件中包含了全数组的GPS数据以及经纬度坐标、时间戳、手机发射台位置、设备进行的Wi-Fi或蓝牙连接。这个数据库文件有些特殊,虽然它可能存储了一些应用程序的私有信息,但它不在应用程序私有文件夹中。关于从consolidated.db文件或其他地方恢复GPS数据的更多细节,可以在第6章中查看到。

相关文章
|
22天前
|
Java 开发工具 Android开发
安卓与iOS开发环境对比分析
【7月更文挑战第4天】在移动应用开发的广阔天地中,安卓和iOS两大平台各据一方,引领着技术潮流。本文将深入探讨这两个平台的开发环境,从编程语言、工具链到市场分布等多个维度进行比较。我们将揭示各自的优势与局限,并分析开发者如何在这两个不同的生态系统中做出选择。通过本文,读者将获得一个全面的视角,理解两大平台在开发实践中的差异性及其对项目成功的影响。
|
4天前
|
IDE 开发工具 Android开发
安卓与iOS开发环境对比分析
在移动应用开发的广阔舞台上,安卓与iOS这两大操作系统各占半壁江山。它们在开发环境上的差异,不仅影响了开发者的编码体验,也在一定程度上塑造了应用生态的多样性。本文将深入探讨两者在开发工具、编程语言、用户界面设计以及市场分布等方面的不同特点,为即将踏入这一领域的开发者提供一盏明灯。
|
4天前
|
IDE 开发工具 Android开发
安卓与iOS开发环境的差异性分析
在移动应用开发的广阔舞台上,安卓和iOS两大操作系统各据一方,引领着市场潮流。它们各自拥有独特的开发环境和工具集,为开发者提供了不同的挑战与机遇。本文旨在深入剖析这两个平台的开发环境,通过比较它们的编程语言、集成开发环境(IDE)、用户界面设计、以及系统架构等方面,揭示各自的优势与局限。我们将探讨如何基于这些差异来优化开发策略,并预测未来可能的发展趋势,以期为开发者在选择平台时提供有价值的参考。
|
4天前
|
API 开发工具 Android开发
安卓与iOS开发环境对比分析
移动操作系统的两大巨头,安卓和iOS,各自拥有独特的开发环境和工具。本文将深入探讨两者的开发环境差异,从编程语言、开发工具、用户界面设计、API支持以及生态系统五个维度进行比较分析。通过数据支撑和案例研究,揭示各自的优势和局限性,为开发者选择适合自己项目需求的平台提供参考依据。
13 1
|
7天前
|
Java Android开发 iOS开发
探索安卓与iOS开发的差异:平台特性与用户体验的对比分析
【7月更文挑战第19天】在移动开发的广阔天地中,安卓与iOS两大阵营各据一方,它们在开发环境、用户界面设计、性能优化等方面展现出独特的魅力与挑战。本文旨在深入探讨这两个平台在技术开发和用户体验上的根本差异,并分析这些差异如何影响开发者的策略和最终用户的选择。通过比较两者的编程语言、工具、框架以及设计理念,我们将揭示各自平台的优势与局限,为开发者提供实用的参考,并为消费者呈现一个更加清晰的平台选择视角。
|
11天前
|
开发工具 Android开发 Swift
安卓与iOS开发环境对比分析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据半壁江山。本文深入探讨了这两个操作系统的开发环境,从编程语言、开发工具到用户界面设计等多个维度进行比较。通过丰富的数据支持和案例研究,揭示了不同平台的优势与挑战,为开发者提供了宝贵的参考信息。
|
9天前
|
安全 开发工具 Android开发
安卓与iOS开发环境对比分析
本文通过深入探讨和比较安卓与iOS两大主流移动操作系统的开发环境,旨在为开发者提供一个全面的视角。我们将从开发工具、编程语言、用户界面设计、性能优化、安全性考量等多个维度进行细致分析,揭示各自平台的优势与挑战。通过统计数据支持的实证研究,本文将展示两个系统在实际应用中的技术差异及其对项目开发周期的影响,并基于市场数据评估各自的商业潜力。
15 1
|
14天前
|
Java 开发工具 Android开发
安卓与iOS开发环境对比分析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据半壁江山。本文深入探讨了两者的开发环境差异,从编程语言、工具框架到用户群体和市场份额进行了全面比较。通过数据支撑和案例分析,揭示了不同平台的优势与局限,旨在为开发者提供决策参考,同时预测未来发展趋势。
|
15天前
|
API 开发工具 Android开发
安卓与iOS开发环境对比分析
在移动操作系统的两大阵营中,安卓和iOS各占据着重要的地位。本文旨在深入探讨两种系统在开发环境方面的异同,通过对开发工具、语言、框架、API以及生态系统的综合比较,揭示各自在应用开发上的优势与挑战。文章将基于最新的市场数据和技术发展进行论述,以期为开发者提供有价值的参考信息,并预测未来可能的发展趋势。
22 1
|
1天前
|
IDE 开发工具 Android开发
安卓与iOS开发环境对比分析:选择适合自己的编程平台
移动应用开发的两大阵营——安卓和iOS,各自拥有不同的开发环境和工具集。本文通过深入比较这两个平台的编程语言、集成开发环境(IDE)、用户界面设计、测试框架以及部署流程,旨在为开发者提供一个全面的视角来选择最符合个人或项目需求的开发环境。