基于Winhex的HFS+文件提取方法研究

2019-09-12 06:20徐健
计算机时代 2019年8期
关键词:数据恢复

徐健

摘  要: MAC产品应用广泛,对MAC OS的HFS+文件系统的解析和数据恢复的需求也逐渐增加。借助存储介质底层数据编辑软件Winhex,详细分析HFS+文件系统文件存储的基本原理,通过实例介绍对所需要文件的提取。

关键词: Winhex; HFS+; 数据恢复; 实例研究

中图分类号:TP309          文献标志码:A     文章编号:1006-8228(2019)08-53-04

Abstract: MAC products are widely used, and the demand for MAC OS HFS+ file system parsing and data recovery is increasing. This paper analyzes the basic principle of HFS+ file system file storage in detail with the help of the Winhex, the underlying data editing software of storage medium, and the extraction of required documents is described by a case.

Key words: Winhex; HFS+; data recovery; case study

0 引言

Winhex是由X-Ways軟件技术公司开发的专业磁盘编辑工具,win表示Windows,hex表示十六进制,即Windows下运行的十六进制编辑器,通过其完善的分区管理功能和文件管理功能,可以自动分析分区表链和文件链簇,可以执行不同级别的备份工作,它的编辑功能可以编辑物理磁盘或逻辑磁盘的任何扇区,内存编辑器可以直接编辑内存,支持Windows、UNIX、Linux、MAC等各种系统下的磁盘分区结构及文件系统结构的解析[1]。

本文以HFS+文件系统为例,分析其文件系统的结构,并通过实例研究的方法找到所需要的文件并准确提取。

1 HFS+文件系统结构分析

HFS+文件系统是目前的Apple电脑中默认的最常用的文件系统,由卷头,5种特殊的“元文件”--分别是分配文件(Allocation File)、盘区溢出文件(Extents Overflow file)、编录文件(Catalog File)、 属性文件(Attributes File)、启动文件(Startup File)以及用户数据区组成。这5个元文件是用于存储文件系统结构的数据和属性,它们的起始地址和大小在文件系统的卷头中描述[2]。HFS+文件系统总体结构如图1所示。

HFS+文件系统的卷头位于宗卷的2号扇区(0、1号扇区保留),占用一个扇区,其作用类似于FAT文件系统和NTFS文件系统中的DBR,记录构建 HFS+文件系统的基本信息,有块(类似于NTFS文件系统的簇)、每块字节数、日志位置信息以及一些重要的元文件的位置信息[3]。

HFS+文件系统用B-树结构组织数据,B-树是一种可以快速搜索、 插入和删除的结构,由节点构成,分为头节点、位图节点、索引节点、叶节点四种类型,其中索引节点和叶节点中包含关键字,对B-树进行的所有操作最终都是针对索引节点和叶节点以及存储在它们中的关键字进行的。

关键字在索引节点和叶节点有定的排序规则[4],具体规则如下:

⑴ 关键字必须以升序方式排列在节点中;

⑵ 同一个层次中的所有节点必须由“下一个节点号”和“上一个节点号”两个参数链接起来;

⑶ 关键字值最小的节点必须位于链表的第一位,且“上一个节点号”参数值为0;

⑷ 关键字值最大的节点必须位于链表的最后,且“下一个节点号”参数值为0;

⑸ 对于任何一个节点,其中存放的所有关键字值必须小于链表中下一个节点中存放的关键字值,且大于链表中上一个节点中存放的关键字值。

对关键字采用上述这种排列规则可以快速地在B-树中搜索到需要的关键字,以便访问与关键字相关联的数据。

下面用个简单的例子描述上述规则,在该例子中,我们用数字作为关键字, 如图2所示。

从图2来看,在访问数据的时候,由头节点定位到根节点,从根节点的第一个记录开始,在关键字值小于等于要搜索的关键字值的记录范围内寻找更大的关键字值记录。

搜索的过程可以延伸到孩子节点,其中索引节点是典型的孩子节点,搜索往往需重复进行,一直延伸到一个叶节点[5]。如果叶节点中的关键字值与要搜索的关键字值相等,则该关键字所关联的就是要访问的数据的相关信息。如果叶节点中的关键字值与要搜索的关键字值不相等,则说明要访问的数据不在这个B-树中,需要到其他B-树中搜索。

2 HFS+文件系统文件提取实验

为了能更好地说明HFS+文件系统的结构及其数据存储原理,准备一个U盘,通过MAC系统的磁盘工具对其格式化成Mac OS文件系统,在其卷宗根目录下放置四个文件夹和88个txt文件,实验要求准确定位80.txt文件并将其提取出来(所需定位及提取的文件可以修改,本文以80.txt为例)。在Windows系统下不能够读取Apple系统的分区,通过运行Winhex程序来分析此U盘的文件系统并提取指定文件。

根据HFS+文件系统的结构,我们可以通过以下步骤来手工提取80.txt,注意Mac OS系统使用Big-Endian字节序[6]。

⑴ 定位卷头。通过该卷宗所在硬盘的Apple分区映射表定位到卷宗的开始位置在409640号扇区,而卷头位于卷宗的第三个扇区,也就是409642号扇区,根据偏移地址0x28~0x2B得知该分区的每块字节数为4096。

猜你喜欢
数据恢复
常见硬盘数据丢失的分析与恢复
浅议数据安全与恢复
基于Android—x86的windows恢复系统研究与设计
Windows操作平台下的数据恢复技术
Redis基于RDB+AOF的数据恢复策略研究
浅析数据恢复技术
数据备份技术
Windows下数据恢复的一点认识
服务器数据备份和恢复研究
浅谈计算机数据恢复