版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章iOS操作系统取证技术7.1iOS操作系统取证概述7.2iOS操作系统常见逻辑数据提取分析7.3iPhone备份文件的取证
7.1 iOS操作系统取证概述
7.1.1 iPhone手机的发展iPhone是美国苹果公司研发的智能手机系列,在一段时期内,iPhone手机几乎占据了手机市场的半壁江山,成为时尚的代名词,其中缘由和iPhone手机的靓丽外观、惊艳操作、流畅系统密不可分。由于iPhone是使用iOS最多的设备,因此在本章后续内容中,有些地方会混用iOS和iPhone这两个名词。
2004年苹果公司成立了iPhone研发团队,使iPhone手机发展迈出了第一步。从第一代手机推出后,苹果公司以平均每年发布1~2款手机的频率更新着iPhone系列。iPhone的内部版本号和系列型号对应关系如表7-1所示。
7.1.2 iOS操作系统简介
iPhone手机从2007年第一代开始,就搭载了苹果公司研发的iOS操作系统。该系统是一个封闭的操作系统,仅支持在iPhone、iPodtouch、iPad等苹果设备上运行,这也是苹果系列硬件设备的核心竞争力所在。
在最高层级,iOS扮演着底层硬件和用户创建的App之间的中介角色。App不会直接与底层硬件通信,而是通过一套定义明确的系统接口与硬件进行通信。这些接口让同一应用能够运行在不同性能的硬件设备上,iOS的技术实现可以被看作多个抽象的层级,如图7-1所示。图7-1iOS操作系统层级
用户界面(CocoaTouch)层包含了构建iOS应用中与用户交互有关的关键运行库。这些库定义了应用的展现,提供应用的基本操作空间和关键技术,包括多任务、以接触为基础的输入、消息推送和许多高级的系统服务。
媒体(Media)层提供图像、音像和视频技术。
核心服务(CoreService)层包含了App用到的基础系统服务,其中最关键的服务是核心基础(CoreFoundation)和基础(Foundation)框架,它定义了所有App都会用到的基础类型。这层也包含了一些特别的技术,如位置、iCloud、社交媒体和网络。
核心系统(CoreOS)层包含了大部分为系统提供服务的底层功能。即使App中没有直接使用这些技术,它们也很有可能已经在其他框架中被间接使用。当用户有明确的安全需要或与外部硬件配件通信时,可以使用核心系统中的框架。
越狱的工作实质就是攻击这一信任链。所有越狱工具的作者都需要找到这一信任链上的漏洞,从而禁止信任链中负责验证的组件。破解引导ROM通常是最有效的办法,因为该组件不会因为苹果公司今后的软件更新而改变。
1.系统安全机制
苹果公司在iOS操作系统安全方面下了一番苦功,相继加入了沙盒机制、数据保护API、钥匙串API、全盘加密技术来保护系统和数据的安全性。
1)沙盒机制
iPhone对安装在手机中的应用程序有所限制,即应用程序只能在为该程序创建的文件系统中读取文件,不可以去其他地方访问,此区域被称为沙盒。总体来说,沙盒就是一种独立、安全、封闭的空间,所有的非代码文件都要保存在此,如图像、图标、声音、映像、属性列表、文本文件等。
2)数据保护API
数据保护API利用文件系统加密、钥匙串和用户密码提供了一个额外的针对文件的保护层,开发者可以根据需求调用,这限制了某些进程在系统层面读取文件。该API最常用的场景就是当设备锁定时确保数据不可用。
3)钥匙串API
iOS操作系统提供了钥匙串API来存储少量机密信息。开发者可以用它来存储密码、机密密钥以及那些不能被其他应用访问的敏感信息。调用钥匙串API主要通过security守护进程来完成,即从SQLite数据库中提取数据。开发者可以指定在什么情况下允许应用读取密钥。
4)全盘加密
对设备中底层的每个数据使用密钥加密,密钥类型分为文件密钥(FileKey)、层级密钥(ClassKey)、文件系统密钥(File SystemKey)和设备密钥(DeviceKey)。
(1)文件密钥针对每个文件单独生成,存储在文件的元数据中。不同级别的文件需要使用不同强度的加密密钥。
(2)层级密钥的作用是专门为那些特殊数据提供不同级别的保护。在早先的iOS版本中,默认的保护等级是NSFileProtectionNone;但是从iOS5开始,默认的保护等级变成了NSFileProtectionCompleteUntilFirstUserAuthentication。
(3)文件系统密钥是一种全局加密密钥,当元数据被层级密钥加密后,用户使用文件系统密钥来加密涉及文件安全的元数据。
(4)设备密钥通常被称为UID密钥,每台设备唯一,只能通过硬件的AES引擎访问,操作系统无法直接获取。它是系统的主密钥,用来加密文件系统密钥和层级密钥。如果用户启用了用户密码(UserPasscode),那么它将与设备密钥结合起来加密层级密钥。
2.运行模式
iPhone有3种运行模式:正常模式、恢复模式(RecoveryMode)和DFU模式(Developer/DevelopmentFirmwareUpgradeMode)。下面重点介绍恢复模式和DFU模式。
1)恢复模式
恢复模式启动时进入iBoot模式,在此模式下可以通过iTunes对设备进行刷机操作。进入恢复模式有以下两种方式。
方式一,其操作步骤如下。
(1)通过数据线连接iPhone设备至装有iTunes的计算机。
(2)确保iPhone设备处在主屏幕界面。
(3)长按电源键,忽略弹出的“滑动来关机”消息,不要松开电源键。
(4)长按Home键。
(5)当iPhone设备出现黑屏时,松开电源键,继续按住Home键,直到计算机上的iTunes弹出“检测到一个处于恢复模式iPhone”的消息再松开Home键。
(6)这时该设备已进入恢复模式。
方式二,其操作步骤如下:
(1)拔掉数据线,关闭iPhone设备。
(2)长按Home键。
(3)运行计算机上的iTunes,将iPhone设备连接至计算机,此时依旧长按Home键不放。
(4)当iPhone设备出现熟悉的RecoveryMode界面时,松开Home键。
若需要退出恢复模式,则需同时按住电源键和Home键,直到iPhone设备出现苹果启动图标即可。
2) DFU模式
DFU模式与恢复模式的区别就是前者跳过了iBoot引导。iPhone设备越狱(经过越狱的iPhone拥有对iOS操作系统底层的读写权限)、降级iOS版本等操作都是在DFU模式下完成的。越狱后的iPhone设备可以通过底层访问磁盘分区,获取物理镜像(不过由于iPhone4S采用了硬件加密芯片,即使获取到物理镜像也是加密的)。
不同iPhone系列手机进入DFU模式的方法不同。
针对iPhone6S或者更低版本的iPhoneSE而言,进入DFU模式的方法如下:
(1)使用数据线连接iPhone设备至计算机。
(2)同时按Home键和电源键。
(3)等待8 s,松开电源键,继续按住Home键不放。如果此时出现苹果图标,则说明按电源键的时间过长,需重新开始上面的步骤。
(4)当iPhone设备进入DFU模式时,手机屏幕是黑的,iTunes会提示“检测到一个处于恢复模式的设备”。如果此时手机上显示连接iTunes的图标,需重新开始上面的步骤。
针对iPhone7、iPhone7Plus而言,进入DFU模式的方法如下:
(1)使用数据线连接iPhone设备至计算机。
(2)长按电源键将iPhone关机。
(3)同时按下电源键和音量“-”键。
(4)等待8 s,松开电源键,继续按住音量“-”键不放。如果此时出现苹果图标,则说明按电源键的时间过长,需重新开始上面的步骤。
(5)当iPhone设备进入DFU模式时,手机屏幕是黑的,iTunes会提示“检测到一个处于恢复模式的设备”。如果此时手机上显示连接iTunes的图标,则需重新开始上面的步骤。
针对iPhone8、iPhone8Plus、iPhoneX而言,进入DFU模式的方法如下:
(1)使用数据线连接iPhone设备至计算机。
(2)快速按一下音量“+”键。
(3)快速按一下音量“-”键。
(4)长按电源键直到手机变黑屏,同时按电源键和音量“-”键。
(5)等待5 s,松开电源键,继续按住音量“-”键不放。如果此时出现苹果图标,则说明按电源键的时间过长,需重新开始上面的步骤。
(6)当iPhone设备进入DFU模式时,手机屏幕是黑的,iTunes会提示“检测到一个处于恢复模式的设备”。如果此时手机上显示连接iTunes的图标,则需重新开始上面的步骤。
对iPhone手机取证主要有4个途径:备份文件取证、逻辑取证、物理取证和iCloud取证,其中备份文件取证方法最简单、方便。
7.1.3备份文件取证
近些年来,电子数据取证领域快速发展,出现的各类案件中都有电子数据证据的身影,其中针对iOS设备的取证占有一席之地。
在iOS备份文件没有密码保护的情况下,通过备份文件进行取证是最简单、便捷的方法。苹果公司的iTunes软件提供了对iOS设备进行备份的功能。
在iOS11版本中,苹果公司加入了USB限制模式(USBRestrictedMode)功能,用户除了要选择“信任”外,还要输入解锁密码,只有这样iPhone设备才能与计算机建立信任关系,并且成功连接后只有7天有效期。但在以前,信任过的设备是可以被多次连接的,现在加上了7天限制,超过7天需要重新信任、输入解锁密码。
使用iTunes生成的备份文件在不同操作系统的保存位置如表7-2所示。
打开备份的目录可以看到里面有很多文件,其中包括Status.plist、Manifest.plist、Manifest.mbdb(或Manifest.db)、Info.plist等,如图7-2所示。图7-2 iTunes备份出来文件的部分内容
AppleMobileBackup.exe为苹果驱动中的命令行程序,安装iTunes即已成功安装该程序。AppleMobileBackup.exe命令支持的功能如图7-3所示。图7-3 AppleMobileBackup.exe命令支持的功能
libimobiledevice是一个可以和iOS设备进行通信的跨平台的程序库,其中包含两个备份命令,分别为idevicebackup和idevicebackup2。idevicebackup支持低版本iOS设备的备份,idevicebackup2支持高版本iOS设备的备份。在Linux环境下使用命令格式“idevicebackup2-u设备IDbackup–full保存路径”对iPhone设备进行备份,这里使用“idevicebackup2-u9e972f63b73be2a879785fb3732d25f2d793e74abackup--full./”,如图7-4所示。图7-4使用libimobiledevice备份iPhone设备的数据
从备份文件中能获取的内容包括:①联系人、个人收藏夹;②通话记录;③苹果商店应用数据;④安装的应用程序设置及数据;⑤Safari浏览器相关数据(书签、历史记录、搜索记录、Cookies等);⑥日历、事件;⑦相册、视频;⑧位置信息;⑨邮件账号;⑩ AppStore账号;⑪网络设置(热点信息、VPN设置、WiFi信息);⑫备忘录、语音备忘录;⑬短消息、彩信图片;⑭系统通知消息。
从iOS3开始,iTunes就具有设置备份密码的功能。在设置了备份密码之后,该iOS设备每次导入或解析备份必须输入密码。使用备份密码得到的备份文件比未加密的备份文件多了一些信息,具体包括:
①存储的密码;
②网站历史记录;
③WiFi设置;
④健康数据。
如果丢失或忘记密码,该备份文件则无法恢复到设备,取证工具也无法解析该备份文件中的数据。这种情况下就需要使用类似ElcomsoftPhoneBreaker(https://www.elcom/eppb.html,以下简称EPB)工具进行暴力或字典攻击来破解密码,在进行密码破解时选择备份中的Manifest.plist文件。不过由于iOS的安全设计比较强,因此破解速度很缓慢,基本上需要使用字典攻击破解密码,而且在iOS9之后这种方式已经无效。Elcomsoft官网公布的各个显卡使用GPU(GraphiceProcessingUnit,图形处理器)加速破解的速度如图7-5所示。图7-5各个显卡使用GPU加速破解的速度
当案件中出现需要处理具有备份密码的iOS设备且无法破解的情况时,iOS11之前的版本是无法对这种情况进行处理的,清除备份密码将导致整个证据手机数据的丢失。但是在iOS11或更高版本中,可以通过还原设置的方式清除备份密码,操作方法如下:
(1)在iOS设备上前往“设置”→“通用”→“还原”,点击“还原所有设置”,然后输入iTunes密码。
(2)按照上述步骤操作还原的iOS设备的设置不会影响用户数据或密码,但会还原显示屏亮度、主屏幕布局和壁纸等设置,还会移除iOS设备的加密备份密码。
(3)重新将iOS设备连接至iTunes,然后创建新的加密备份。
(4)完成上述操作之后,将无法使用在此之前的加密备份,但可以使用iTunes备份的当前数据并设置一个新的备份密码。
如果iOS设备安装的是iOS10或更低版本,则无法使用上面的方式清除密码。当遇到这种情况时,可以尝试使用iCloud云备份对设备进行备份,然后从iCloud云备份上获取数据。
7.1.4逻辑取证
逻辑取证是指取证软件基本上是基于iOS备份上进行获取、分析的过程。iTunes提供的iOS备份功能,能够较完整地获取设备的数据。
7.1.5物理取证
物理取证就是将iPhone设备内存芯片中的数据转换为镜像文件,类似传统硬盘获取原始的DD镜像的过程。通过物理取证获取的内容不仅包含已有数据,还包含未分配空间中的数据。如果iPhone设备支持物理取证,则意味着是获取删除文件以及keychain钥匙串的有效方式。相较于iOS备份和逻辑取证,物理取证能提取到更多的数据。
keychain文件中可以包含多种类型的数据,如密码(包括网站、FTP服务器、SSH账户、网络共享、无线网络、群组软件、加密磁盘镜像等各种应用)、私钥、电子证书、加密笔记等。
iPhone4之后启用了硬件加密,iOS8版本更是增强了keychain钥匙串的功能,对存储的数据进行加密,采取每个文件一个独立密钥的方式,一旦文件被删除,该文件的加密密钥也会被删除,即使恢复出该文件的存储数据也无法对其进行解密。所以,物理取证方式适用的范围还是很有限的。
很多取证软件都有支持物理取证的功能,如Cellebrite的UFED(UniversalForensicExtractionDevice)。由于iOS设备的硬件加密机制,导致物理获取功能只能支持早期的一些设备型号。
7.2 iOS操作系统常见逻辑数据提取分析
7.2.1短消息的提取和分析短消息、iMessages应用数据保存在 /private/var/mobile/Library/SMS/sms.db目录下,sms.db为SQLite数据库,有时会看到sms.db-shm和sms.db-wal文件,这两个文件是SQLite数据库的预写日志和索引。草稿内容保存在Drafts目录下,附件内容保存在Attachments目录下。测试手机的Library/SMS/目录内容如图7-6所示。图7-6 Library/SMS/目录内容
短消息数据库sms.db对应的iPhone备份文件中的文件名为3d0d7e5fb2ce288813306e4d4636395e047a3d28,sms.db在Manifest.mbdb中的信息如图7-7所示(关于Winhex模板的介绍见7.3.1节)。图7-7 sms.db在Manifest.mbdb中的信息
由图7-7可知,由sms.db数据库的域名和路径字符串合并得到字符串HomeDomain-Library/SMS/sms.db,再计算合并字符串的SHA1哈希值,得到短信数据库在备份中的存储文件名为3d0d7e5fb2ce288813306e4d4636395e047a3d28,这也是所有备份文件中文件名的由来。
sms.db数据库中主要的表有message、chat、chat_message_join、message_attachment_join、attachment,短消息内容主要保存在message表中,通过chat_message_join、message_attachment_join等关联表可查找出对应短消息的电话号码、附件。
执行以下SQL语句,查询短消息内容:selectc.chat_identifieras'电话号码',c.service_nameas'类型',u.textas'短消息内容',datetime(substr(u.date,1,9)+978307200,'unixepoch','localtime')as'时间',case发送'接收'endas'方向',A.filenameas'附件'fromchat_message_joinasMleftjoinchatasConC.rowid=M.chat_idleftjoinmessageasUonU.rowid=M.message_idleftjoinmessage_attachment_joinasM1onM1.message_id=U.rowidleftjoinattachmentasAonA.rowid=M1.attachment_id;
短消息内容查询结果如图7-8所示。图7-8短消息内容查询结果
7.2.2通话记录的提取和分析
通话记录的数据库保存在 /private/var/wireless/Library/CallHistory/call_history.db文件中,保存了手机的拨出和呼入电话的历史记录。通过数据挖掘该数据库,可以得到删除的通话记录。call_history.db数据库中的call表保存了通话记录数据,该表中主要字段的含义如表7-3所示。
从iOS8版本开始,通话记录数据库的路径变更为/private/var/wireless/Library/CallHistoryDB/CallHistory.storedata,如图7-9所示。图7-9通话记录保存的位置
CallHistory.storedata数据库(主要的表如图7-10所示)中的ZCALLRECORD表保存了通话记录数据。图7-10 CallHistory.storedata数据库中主要的表
ZCALLRECORD表中主要字段的含义如表7-4所示。
值得一提的是,在/private/var/mobile/Library/Preferences/com.apple.mobilephone.plist文件(plist格式文件转换为xml格式的方法见7.3.1节)中,节点DialerSavedNumber的值记录了最后一次拨出的电话号码。图7-11中,DialerSavedNumber的值与通话记录数据库CallHistory.storedata中的ZCALLRECORD表中最后一条记录的ZADDRESS字段值相同。图7-11通话记录历史信息
7.2.3联系人信息的提取和分析
联系人数据保存在/private/var/mobile/Library/AddressBook目录下的AddressBook.sqlitedb、AddressBookImages.sqlitedb数据库中。AddressBook.sqlitedb数据库存储了每个联系人的详细信息,包括姓名、姓氏、电话号码、电子邮件、地址等,上述数据主要保存在ABPerson、ABMultiValue表中;AddressBookImages.sqlitedb数据库存储了联系人的头像数据,以blob
7.2.4浏览器历史记录的提取和分析
iOS设备中都预装了苹果浏览器应用Safari,Safari的浏览记录、书签、Cookies数据保存在 /private/var/mobile/Library/目录和Safari程序目录中。
(1) Safari书签存储在 /private/var/mobile/Library/Safari/Bookmarks.db数据库中,早期iOS版本则存储在Bookmarks.plist或Bookmarks.db文件中。
(2) Safari浏览器的Cookies存储在 /private/var/mobile/Library/Cookies/Cookies.binarycookies文件中,该文件存储格式并非SQLite数据库。
(3) Safari快速访问站点截屏记录了用户最常访问网站的截图缩略图,存储在/private/var/mobile/Library/Caches/Safari/目录中。
(4) Safari搜索缓存记录了用户使用Safari浏览器在搜索栏中的最新搜索,存储在/private/var/mobile/Library/Caches/Safari/RecentSearches.plist文件中。
(5) Safari历史搜索记录了Safari浏览器最近搜索的列表,当用户删除Safari搜索缓存、Safari历史浏览记录时,Safari历史搜索信息依然不会被删除,存储在/private/var/mobile/Library/Preferences/com.apple.mobilesafari.plist文件中,转换后可以看到以数组方式显示的历史搜索记录,如图7-12所示。图7-12 Safari历史搜索记录
(6) Safari暂停状态是指当用户按下Home键、iPhone关机、浏览器崩溃等这几种情况发生时Safari浏览器的最后状态,Safari暂停状态就是为了能够让浏览器顺利恢复到这种状态而产生的。此时,Safari数据存储在/private/var/mobile/Library/Safari/SuspendState.plist文件中,如图7-13所示。图7-13SuspendState.plist文件中的部分内容(已转换)
(7) Safari缩略图保存第三方应用使用WebKit框架(WebKit是苹果macOSX操作系统引擎框架版本的名称,主要用于Safari、Dashboard、Mail和其他一些macOSX程序)最后活动的截图,存储在 /private/var/mobile/Library/Caches/Safari/Thumbnails/目录或 /private/var/mobile/Library/Safari/Thumbnails/目录中。
7.2.5邮件客户端信息的提取和分析
当用户将他们的电子邮件账户同步到设备时,账户信息以及电子邮件内容会被存储在设备内。
/private/var/Keychain/keychain-2.db文件保存了电子邮件的账号信息,在该钥匙串文件中还有用户登录、WiFi账号、应用登录等信息。从数据库的inet表中可以得到电子邮件的账号信息。
/private/var/mobile/Library/Mail/目录中保存了苹果邮件客户端每个电子邮件账户同步到设备的邮件文件夹,包括接收、发送、草稿等内容。从测试备份文件的路径下可看到一个Recents文件,查看数据库中contacts表包含的一些联系人信息,如图7-14所示。
图7-14 Recents文件中contacts表的部分记录
7.2.6位置信息的提取和分析
自从iOS6版本于2012年发布以来,苹果手机拥有了自己的地图应用程序,数据存储在 /private/var/mobile/Library/Preferences/com.apple.Maps.plist文件中。该文件包含用户最后搜索的信息,如经度、纬度、搜索查询。地图主文件存储在 /private/var/mobile/Library/Maps目录中,包含用户搜索的历史记录以及所标记的位置列表。
7.2.7其他信息源分析
Notes应用程序存储了有关用户创建的备注信息,数据存储在 /private/var/mobile/Library/Notes/notes.sqlite、/private/var/mobile/Library/Notes/notes.idx文件中。notes.idx为笔记的片段存储的索引文件,笔记标题、内容、创建时间和修改时间存储在notes.sqlite数据库中的ZNOTE和ZNOTEBODY表中。
日历应用程序允许用户手动创建事件,并将它们与其他应用程序进行同步。日历事件信息存储在/private/var/mobile/Library/Calendar/Calendar.sqlitedb和/private/var/mobile/Library/Calendar/Extras.db这两个数据库中。/Calendar.sqlitedb数据库基本上包含了与日历中存在的事件相关的所有信息,Extras.db数据库保存了日历设置、与特定日历事件相关的提醒等额外信息。
语言备忘录应用程序可以让用户录制语音,这些备忘录数据存储在/private/var/mobile/Media/Recordings/目录中。在该文件夹中,每个语音备忘录的元数据信息被保存至Recordings.db数据库中,包括每次录音备忘的时长、备忘录名称、日期、语音备忘录的文件名等,文件中保存的是具体的录音数据。
7.3 iPhone备份文件的取证
7.3.1备份文件的结构与分析iOS的备份文件包括3类:PList文件、数据文件以及数据库文件。
1. PList文件PList是一种属性列表文件,用来存储串行化后的对象,扩展名为 .plist。其存储方式有3种,其中以XML格式或binary格式最为常见。
1) Info.plist文件
Info.plist文件是明文保存的,里面记录了设备名字、iOS版本、型号、备份日期、设备信息、UDID、ICCID、MEID、应用程序列表等信息,如图7-15所示。图7-15 Info.plist文件的部分内容
2) Manifest.plist文件
Manifest.plist是一个二进制格式的PList文件,里面记录了安装的应用程序、备份是否加密等信息。用文本工具打开该文件是乱码的,部分内容如图7-16所示。
从图7-16可以看出,二进制格式的PList文件是非明文的,无法直接阅读其内容,可以通过工具将这种格式转换成明文的XML格式。macOS、Windows操作系统环境下都提供了转换命令。Windows环境需要安装iTunes,命令程序存放的路径为C:\ProgramFiles(x86)\CommonFiles\Apple\AppleApplicationSupport\plutil.exe。plutil.exe命令支持的格式如图7-17所示。图7-17 plutil.exe命令支持的格式
将二进制格式的PList文件转换为XML格式,使用的命令为“plutil.exe-convertxml1plist文件 -oxml文件”,如“plutil-convertxml1Manifest.plist-oManifest.json”。转换后生成的Manifest.json文件的部分内容如图7-18所示。图7-18 Manifest.json文件的部分内容
3) Status.plist文件
Status.plist也是一个二进制格式的PList文件,包含了一些诸如备份时间、是否为全量备份等备份状态信息,转换后的部分内容如图7-19所示。图7-19 Status.plist文件转换后的部分内容
2.数据文件
iOS备份文件中有大量文件的文件名是由40个十六进制字符组成的,这些文件都是数据文件。其文件名的生成规律是根据“域 + 原始路径”(使用“-”为连接符)拼接得到的字符串计算SHA1值,SHA1值就是生成的文件名。例如,短消息数据库的路径为Library/SMS/sms.db,其域名为HomeDomain,将字符串合并后为HomeDomain-Library/SMS/sms.db,计算该字符串的SHA1哈希值为3d0d7e5fb2ce288813306e4d4636395e047a3d28,如图7-20所示。图7-20计算SHA1结果
3.数据库文件
iOS备份文件中的数据库相关文件有Manifest.mbdx、Manifest.mbdb、Manifest.db。
在iOS5版本之前,iOS备份文件中有Manifest.mbdb和Manifest.mbdx两个文件,其中,Manifest.mbdb是备份的索引文件,由一个定长的头部和若干定长的记录构成;Manifest.mbdx数据库中记录着文件信息,如域名、路径、哈希值、文件大小等属性。
但在iOS5版本中废弃了Manifest.mbdx文件,Manifest.mbdb文件包含域名、路径、路径类型、创建时间、密钥、文件大小等属性。Manifest.mbdb是一个结构化文件,由无数个数据记录组成。使用十六进制查看工具WinHex打开该文件,其文件头部分内容如图7-21所示。
由图7-21可知,前面6字节6D6264620500为文件头,随后的字节存储着备份文件中各种数据文件的信息。解析Manifest.mbdb文件结构,可以看出数据记录中很多数据字段的存储结构为“长度 + 值”的模式,即由前2个字节声明其值的长度(用字节表示),紧随其后则是字段的内容。Manifest.mbdb中一条数据记录的结构解析如表7-5所示。
表7-5中整数的存储格式为big-endian。为了便于分析一条数据的结构,可以借助WinHex、010editor等十六进制编辑器的模板功能。参照表7-5中各个数据字段的解析,下面写了一个简单的WinHex模板,其中文件属性这部分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓库库存管理清单库存盘点与优化策略
- 护理文件书写的质量改进工具
- 投资合作项目守秘管理保证承诺书(5篇)
- 项目风险管理框架可配置应用版
- 化学泄漏事故紧急处理方案社区生活居民预案
- 护理临床教学查房:泌尿系统疾病护理
- 酒店管理专业服务提升指导书
- 网络预约车出行服务承诺书7篇
- 2026年刮痧实操祛湿排毒养生教学课件
- 客户关系管理流程优化手册
- 2026广东中山市神湾镇招聘雇员17人考试参考题库及答案解析
- 单位内部报账管理制度
- 部编版新教材道德与法治二年级下册《1.身心健康很重要》教案设计
- 新教科版四年级下册科学全册精编教案教学设计(新课标版)
- 2008年度益阳市公务员录用考试面试时间(第一批第一组)安
- 前途理想教育主题班会
- 煤矿IP语音调度系统技术方案
- 《伦理学概论》课程教学大纲
- 外科学课件-外科学绪论
- 医疗机构综合监督检查表
- 《东北地区的人口与城市分布》说课稿--完整公开课PPT课件
评论
0/150
提交评论