深入剖析iOS系统:数据分区、数据库与属性列表全解析
立即解锁
发布时间: 2025-08-15 01:22:53 订阅数: 1 


iOS设备取证分析与实践
### iOS系统数据分区、数据库及属性列表深度解析
#### 1. iOS数据分区概述
多年来,iOS设备的数据分区组成变化不大。从逻辑获取中可以看到文件系统的一些变化,而从该设备获取的大部分证据都来自读写分区,也就是数据分区。下面是数据分区中一些目录及其相关感兴趣的项目:
| 目录 | 感兴趣的项目 |
| --- | --- |
| CommCenter | 无工件 |
| Dhcpclient | 一个包含该设备最后IP地址和路由器信息的plist文件 |
| db | 无工件 |
| Ea | 空 |
| Folders | 空 |
| Keychains | Keychain.db,包含来自各种应用程序的用户密码 |
| Log | 空 |
| Logs | General.log:操作系统版本和序列号;Lockdownd.log:锁定守护进程日志 |
| Managed Preferences | 空 |
| Mobile | 大量用户数据(其他章节详细描述) |
| MobileDevice | 空 |
| Preferences | 系统配置:备份的网络工件 |
| Root | Caches:GPS位置信息;Lockdown:配对证书;Preferences:无工件 |
| Run | 系统日志 |
| tmp | Manifest.plist:plist备份 |
| Vm | 空 |
当苹果设备通过iTunes备份时,它会从Mobile目录收集信息。以下是按目录组织的工件以及它们是否存在于备份中的情况:
| 目录 | 是否在备份中 | 工件 |
| --- | --- | --- |
| Mobile/Application | √ | Plists,SQLite数据库 |
| Library/AddressBook | √ | 联系人及图像 |
| Library/Caches | | SQLite数据库:MapTiles |
| Library/Calendar | √ | SQLite数据库:事件 |
| Library/CallHistory | √ | SQLite数据库:通话记录 |
| Library/Carrier Bundles | | 运营商信息 |
| Library/Caches/Com.apple.itunesstored | | iTunes购买信息 |
| Library/ConfigurationProfiles | √ | Plist密码历史 |
| Library/Cookies | √ | Plist:互联网cookie |
| Library/DataAccess | √ | 电子邮件账户信息 |
| Library/Keyboard | √ | .dat文件:动态文本 |
| Library/Logs | √ | 日志文件 |
| Library/Mail | √ | 在逻辑数据中,无工件 |
| Library/Maps | √ | Plist:书签、方向、历史记录 |
| Library/Mobileinstallation | √ | 使用位置的应用程序 |
| Library/Notes | √ | SQLite数据库:笔记 |
| Library/Preferences | √ | Plist:系统和用户设置 |
| Library/RemoteNotification | √ | Plist:具有推送通知的应用程序 |
| Library/Safari | √ | Plist:书签、历史记录 |
| Library/SafeHarbor | | 应用程序数据存储位置 |
| Library/SMS | √ | SMS和MMS数据 |
| Library/Voicemail | √ | .amr文件:语音消息 |
| Library/Webclips | | |
| Library/WebKit | √ | SQLite数据库:Gmail账户信息、缓存的电子邮件消息 |
| Media/DCIM | √ | iPhone相机照片 |
| Media/PhotoData | √ | 额外的照片信息和缩略图 |
| Media /iTunes_Control | | 来自iTunes的音乐和视频 |
| Media/Books | | 来自iBookstore的书籍和同步的PDF |
#### 2. SQLite数据库
iDevice操作系统使用SQLite数据库格式在手机上存储信息。逻辑提取检查显示,有许多SQLite数据库用于手机的操作和应用程序开发。iPhone还使用这些数据库在不同数据库之间交叉引用信息,并在用户界面上显示。其中最重要的三个数据库是地址簿、短信和通话记录数据库。
##### 2.1 地址簿数据库
地址簿数据库有18个表,以下是在调查中可能相关的信息:
| 表 | 相关数据 |
| --- | --- |
| AB Group | 组信息 |
| ABGroupChanges | 非证据性 |
| ABGroupMembers | 与每个组关联的联系人 |
| ABMultiValue | 当联系人有多个值时,如电话号码、电子邮件地址簿、公司URL等 |
| ABMultiValueEntry | 联系人的街道地址 |
| ABMultiValueEntryKey | 非证据性 |
| ABMultiValueLabel | 非证据性 |
| ABPerson | 姓名、组织、部门、备注等 |
| ABPersonChanges | 非证据性 |
| ABPersonMultiValueDeletes | 非证据性 |
| ABPersonSearchKey | 非证据性 |
| ABPhoneLastFour | 非证据性 |
| ABRecent | 最近使用的电子邮件地址 |
| ABStore | 非证据性 |
| FirstSortSectionCount | 非证据性 |
| FirstSortSectionCount | 非证据性 |
| _SqliteDatabaseProperties | 非证据性 |
| Sqlite_sequence | 非证据性(但包含有关数据库结构的有用信息) |
##### 2.2 短信数据库
短信数据库存储了Messages应用程序发送和接收的短信记录。以下是该数据库的表及其相关数据:
| 表 | 相关数据 |
| --- | --- |
| _SqliteDataBaseProperties | 包含数据库属性(非证据性) |
| Group_member | 为传入短信分配一个组ID,然后从iPhone所有者和对话方提取所有短信 |
| Message | 包含消息内容、日期和时间,以及消息是发送还是接收;还列出关联的组ID |
| Msg_group | 给出组ID和该组中最后一条消息的ID |
| Msg_Pieces | 跟踪所有MMS消息 |
| Sqlite_sequence | 提供数据库中所有表的顺序列表 |
在查看短信记录时,可以看到ROWID(行标识)、地址(短信来源的电话号码)以及短信的日期和时间。日期和时间值是Unix时间,可以使用一些免费工具进行转换。标志用于区分发送和接收的短信。
##### 2.3 通话记录数据库
通话记录数据库相对简单,且有存储限制,它只能保存100个通话记录。地址簿数据库是iDevice上许多其他应用程序的中心,该数据库与其他数据库之间存在大量数据关联。例如,通话记录数据库会将发送和/或接收的电话号码与地址簿数据库中关联的姓名进行关联。以下是通话记录数据库中相关的表和工件:
| 表 | 相关数据 |
| --- | --- |
| SqliteDatabaseProperties | |
| Call | 包含电话号码、日期和时间信息以及通话时长;还标记来电、去电、未接来电和有语音邮件的通话 |
| Data | 跟踪iPhone发送和接收的字节数 |
| Sqlite_sequence | 包含数据库中表的顺序列表 |
这三个数据库之间的关系可以用以下mermaid流程图表示:
```mermaid
graph LR
A[地址簿数据库] --> B[通话记录数据库]
A --> C[短信数据库]
B --> A
C --> A
```
#### 3. 从SQLite数据库检索数据
有一些应用程序可以帮助从SQLite数据库中提取数据,以便在其他应用程序或工具中使用。
##### 3.1 SQLite Database Browser
- 操作步骤:
1. 点击“Open”图标,导航到相关数据库。
2. 将相关数据库导入SQLite Database Browser后,切换到“Browse Data”选项卡。
3. 从“Table”下拉列表中选择要查看的表。
4. 可以将数据从SQLite Database Browser导出为CSV(逗号分隔值)格式,然后用Microsoft Excel等应用程序打开。
##### 3.2 Froq
Froq是由Alwin Troost开发的专有应用程序,可在www.alwintroost.nl/?id=82购买。它功能强大,是查看数据库表和导出调查所需数据库部分的优秀工具。
- 查看数据库的操作步骤:
1. 转到Froq菜单栏,选择“connect | connect”。
2. 在弹出框中选择创建新连接,点击“+”。
3. 在展开的窗口中,为连接命名,例如“Calendar”。
4. 选择数据库类型为“SQLite”。
5. 从“Browse”选项卡导航到相关数据库。
6. 数据库将被导入Froq进行分析,可从左窗格选择表,在右窗格查看数据。
- 导出数据的操作步骤:
1. 返回顶部工具栏,选择“Resultset | Export”。
2. 有三种设置类型:自定义、导出为Excel电子表格或SQL语句。
3. 在“columns”下,可以根据需要对所需数据进行细化。例如,选择“Export as Microsoft Excel document”,然后从“Source rows”部分选择“Export all rows”单选按钮,并选择所需的列。
4. 点击“Export”。
#### 4. 属性列表
属性列表是标准OS X系统中常见的XML文件。由于iOS是经过修改的OS X系统,因此在目录结构中也会看到属性列表。iOS数据分区中有很多属性列表,可能包含有价值的信息。以下是一些包含相关数据的属性列表:
| 目录 | 属性列表和工件 |
| --- | --- |
| Db | |
| Keychain | |
| Managed preferences | Com.apple.springboard.plist:添加工件 |
| Mobile/library/Cookies | Cookies.plist:与网络相关的工件 |
| Mobile/Library/Mail | Accounts.plist:电子邮件账户;Metadata.plist:电子邮件提取的日期和时间 |
| Mobile/Library.Maps | Bookmarks.plist:用户创建的地图书签;History.plist:所有路线和搜索记录 |
| Mobile/Library/Preferences | Com,apple.BTserver,airplane.plist:显示设备上蓝牙的飞行模式是否启动;Com.apple.commcenter,plist:存储ICCID和IMSI号码;Com.apple.maps.plist:最近的地图搜索和最后看到的地图图块的最后纬度和经度;Com.apple.mobilehpone.settings.plist:呼叫转移号码;Com.apple.mobilephone.speeddial.plist:所有快速拨号的常用联系人;Com.apple.mobilesafari.plist:最近的Safari搜索;Com.apple.MobileSMS.plist:任何未发送的短信;Com.apple.mobiletimer.plist:使用的世界时钟列表;Com.apple.preference.plist:最后使用的键盘语言;Com.apple.springboard.plist:界面中显示的应用程序列表、密码保护标志、擦除启用设置、最后系统版本;Com.apple.weather.plist:天气预报的城市、最后更新的日期和时间;Com.apple.youtube.plist:所有书签视频的URL、所有观看视频的历史记录、用户搜索的视频 |
| Library/Safari | Bookmarks.plist:所有互联网书签(创建的和标准的);History.plist:网页浏览历史记录;Suspendedstate.plist:所有暂停网页的标题和URL,这些网页保存在后台,方便用户轻松在页面间切换(一次最多可保存八页) |
##### 4.1 查看属性列表
苹果为审查人员提供了一个免费工具——属性列表编辑器(也称为plist)来查看属性列表。它是开发工具的一部分,可在OS X安装盘上选择安装,最新版本可从苹果开发者网站(http://developer.apple.com/technologies/tools)下载。
- 操作步骤:
1. 导航到“/Developer/Applications/Utilities/Property List Editor”。
2. 双击该应用程序。
3. 从“Property list file”菜单中选择“Open”。
4. 导航到要查看的plist文件位置。
5. 选择plist文件。
6. 点击“Open”按钮。
7. 从plist编辑器界面查看工件。
不过,这个免费工具在报告工件方面存在不足,可以截取相关数据的屏幕截图并添加到报告中。还有另一个应用程序OmniOutliner 3,它是与OS X 1.4(Tiger)捆绑的付费应用程序,可在www.omnigroup.com/products/omnioutliner获取。可以使用它轻松查看plist并将其纳入现有报告。
- 设置Mac自动用OmniOutliner打开所有plist文件的操作步骤:
1. 从“Finder”中,在卷中找到任何plist文件(“Library/Preferences”是个不错的选择)。
2. 右键单击该plist文件。
3. 选择“Get Info”。
4. 在“Get Info”对话框中,展开“Open with”部分。
5. 点击下拉列表,选择“Other”。
6. 在新窗口中将“Recommended Applications”更改为“All Applications”。
7. 找到OmniOutliner并选中该应用程序。
8. 选择“Always Open With”框,然后点击“Add”按钮。
- 使用OmniOutliner查看和报告plist的操作步骤:
1. 选择要检查的属性列表,双击该文件,OmniOutliner将自动打开该plist。
2. 值会分为“Key”和“Value”列显示。
3. 要展开所有键,转到菜单栏,选择“View | Expand All”,即可查看所有键和值。
4. 报告数据时:
a. 展开所有或仅展开相关项目。
b. 转到菜单栏,选择“File | Export”。
c. 输入文件名、保存位置和导出格式。
综上所述,iOS操作系统和文件系统自2007年推出以来发生了变化,苹果设备家族的发展改变了我们的通信和计算方式。了解这些设备的内部工作原理对于智能地阐明促进工件提取的一些过程非常重要。大部分iDevice上的证据存储在SQLite数据库和属性列表中,掌握这些数据的分析方法对于数据调查和取证工作具有重要意义。
#### 5. 手机搜索、扣押与事件响应
在当今数字化时代,手机已成为人们生活中不可或缺的一部分,它存储着大量的个人信息。当面临执法人员对手机进行搜索的情况时,我们需要了解相关的法律规定和实际情况。
想象一下,一名警官因超速拦下你的车辆,并在与你交谈后,要求搜查你的iPhone。此时,你是否有权拒绝?美国宪法第四修正案旨在保护个人免受不合理的搜查和扣押,但对于电子设备的搜查,情况并非那么简单,它实际上取决于具体的情况和事件。
从历史角度看,手机的概念起源于1947年,当时Donald Ring提出将地理区域划分为多个“小区”的想法。每个小区配备天线和收发器单元,这样可以降低功耗并便于广泛扩展。到2000年,全球手机用户已超过1.09亿,手机变得更小且更实用。随着技术的不断进步,手机的功能也日益强大,如今的手机更像是手持计算机,用户不仅可以打电话,还能通过互联网和电子邮件进行通信、存储大量数据,并执行类似于桌面计算机的功能。
如今的手机能够使用多媒体应用程序,存储包括地址、电话号码、通话记录和短信在内的个人信息。这使得手机中的数据量大幅增加,也引发了关于执法人员搜查手机是否合理的讨论。
在早期,宪法第四修正案为个人提供了免受不合理搜查和扣押的保护,但存在一些例外情况,例如在合法逮捕时进行的搜查。然而,技术的发展速度远远超过了判例法的解释速度,对于电子设备的搜查,法律尚未形成明确统一的规定。
例如,在某些情况下,如果执法人员有合理的理由相信手机中包含与犯罪相关的证据,并且获得了搜查令,那么他们可能有权搜查手机。但如果没有合理理由或搜查令,个人有权拒绝搜查。然而,在实际操作中,情况可能更加复杂,例如在紧急情况下,执法人员可能会在没有搜查令的情况下进行搜查。
以下是一些可能影响执法人员搜查手机合法性的因素:
| 因素 | 说明 |
| --- | --- |
| 合理理由 | 执法人员必须有合理的理由相信手机中包含与犯罪相关的证据。例如,如果有证人指认嫌疑人使用手机进行了犯罪活动,那么执法人员可能有理由搜查手机。 |
| 搜查令 | 在大多数情况下,执法人员需要获得搜查令才能合法地搜查手机。搜查令必须基于合理的理由,并由法官签署。 |
| 紧急情况 | 在某些紧急情况下,如可能导致人员伤亡或证据销毁的情况下,执法人员可能在没有搜查令的情况下进行搜查。 |
| 同意搜查 | 如果个人自愿同意执法人员搜查手机,那么搜查通常是合法的。但需要注意的是,同意必须是自愿的,不能受到威胁或强迫。 |
为了更清晰地展示这些因素之间的关系,我们可以用以下mermaid流程图表示:
```mermaid
graph LR
A[执法人员要求搜查手机] --> B{是否有合理理由}
B -->|是| C{是否有搜查令}
B -->|否| D[个人有权拒绝]
C -->|是| E[可以搜查]
C -->|否| F{是否为紧急情况}
F -->|是| E
F -->|否| G{个人是否同意搜查}
G -->|是| E
G -->|否| D
```
在面对执法人员搜查手机的情况时,个人应该了解自己的权利,并根据具体情况做出合理的决策。如果不确定自己的权利或情况复杂,建议咨询专业的法律人士。
#### 6. 总结与展望
iOS操作系统和文件系统自2007年推出以来发生了显著的变化,苹果设备家族的不断发展改变了我们的通信和计算方式。了解这些设备的内部工作原理对于智能地阐明促进工件提取的一些过程至关重要。
通过对iOS数据分区、SQLite数据库和属性列表的分析,我们可以看到设备中存储着大量有价值的信息。数据分区包含了用户的各种数据,如联系人、短信、通话记录、照片等;SQLite数据库则是存储这些数据的重要载体,地址簿、短信和通话记录数据库之间相互关联,为我们提供了丰富的信息来源;属性列表中也包含了许多系统和用户设置等重要信息。
在实际应用中,我们可以使用各种工具来提取和分析这些数据。例如,SQLite Database Browser和Froq可以帮助我们从SQLite数据库中提取数据;属性列表编辑器和OmniOutliner 3则可以用于查看和处理属性列表。
同时,我们也需要关注执法人员对手机的搜查问题。随着手机功能的不断增强和数据量的增加,如何在保护个人隐私和执法需求之间找到平衡,是一个亟待解决的问题。法律需要不断适应技术的发展,明确电子设备搜查的合法性和界限,以保障个人的合法权益。
未来,随着技术的进一步发展,iOS设备可能会存储更多类型的数据,并且数据的安全性和隐私保护将变得更加重要。我们需要不断更新和完善数据提取和分析的方法,同时加强对个人隐私的保护。此外,对于执法人员的培训也至关重要,他们需要了解相关的法律规定和技术知识,以确保在搜查手机时合法、合理地获取证据。
总之,对iOS设备的深入了解和合理应用,以及在法律框架内处理手机搜查问题,将有助于我们更好地利用这些设备的功能,同时保护个人的合法权益。
以上就是关于iOS系统数据分区、数据库、属性列表以及手机搜查相关问题的详细介绍,希望能为你提供有价值的信息。
0
0
复制全文
相关推荐










