APP下载

基于Thumbs.db文件的数据恢复技术研究与开发

2011-07-13贾昌海

电子设计工程 2011年17期
关键词:缩略图文件名数据流

杜 江,贾昌海

(1.重庆邮电大学 计算机学院,重庆 400039;2.重庆邮电大学 通信学院,重庆 400039)

随着科技高速发展,以电子数据为表现形式的犯罪行为日益增多。计算机证据作为一种新的证据形式,逐渐成为新的诉讼证据之一。因此计算机式的欺诈、侵犯、窃密、恶意篡改等种种高科技犯取证正逐渐引起人们研究与关注的焦点[1]。

在应用软件层中,有许多应用程序为了缓存或者管理某些数据,通常会把这些数据写到指定的特殊文件格式中,即使这些数据被用户删除了,这些特殊文件中仍保留有这些数据。应用软件层的数据恢复,就是对这些特殊格式的文件做分析,提取文件中存储的内容,重现已被用户删除的数据。

在Windows系统下,index.dat文件和Thumbs.db文件是两个典型。Windows系统中会存在3个index.dat文件。它们分别用来保存IE上网的cookies、临时文件和上网历史的索引信息。Thumbs.db文件通常存在于存储有图片文件的路径下。它记录了当前路径下所有图片的缩略图,以及每张图片的文件名,最后修改时间等信息。即使当前路径下所有图片文件已删除,Thumbs.db文件仍然保留这些信息。对Thumbs.db文件格式的分析以及对缩略图等信息的提取将为公安机关获取犯罪证据,有效打击犯罪提供了技术支持[2-4]。

本文围绕应用软件层数据恢复技术,以Windows操作系统的Thumbs.db文件为例,对系统文件Thumbs.db的作用及文件结构做详细分析,并将实现Thumbs.db文件分析软件,能够方便浏览、保存Thumbs.db文件中存储的缩略图等信息,借此验证对Thumbs.db文件结构分析的正确性,也进一步展现应用软件层的数据恢复技术对取证带来的积极意义。

1 Thumbs.db文件的作用

在存储图片的路径下,只要以缩略图的形式查看过图片,都会有一个很特殊的文件Thumbs.db。它是被隐藏的受保护的操作系统文件,一般情况下是看不到的。

Thumbs.db文件是为了提高文件夹在缩略图查看方式下的响应速度而对当前文件夹下的图像文件建立的缓存,可缓存图像文件的格式包括 jpeg、bmp、gif、tif、pdf和 htm。 Thumbs.db文件保存在每个包含图片的目录中,里面保存了这个目录下所有图像文件的缩略图,缩略图格式为jpeg,相当于一个缩略图数据库。当以缩略图的形式浏览图片时,就会在当前目录下生成一个Thumbs.db文件。在一般情况下,当图片从目录中被删除后,该图片在Thumbs.db文件中保存的缩略图仍然存在。

1.1 结构化存储结构

Thumbs.db文件采用的是结构化存储(Structured Storage)。所谓结构化存储,就是在文件系统基础之上,又建立了一个存储系统。

文件系统可以看成是一棵树,树根下面的每个节点,可以是目录,也可以是文件。目录还可以有子节点,而文件一定是叶子节点。结构化存储和文件存储极其类似,它实际就是把树状文件系统的原理应用到单个文件中,使得单个文件也能像文件系统一样包含“子目录”,“子目录”还可以包含更深层次的“子目录”,各个“目录”可以含多个“文件”,把原来需要多个文件存储的内容按树状结构和层次保存到一个文件中去[5]。在结构化存储文件中,上述的“目录”和“文件”分别称作仓库(Storage)和数据流(Stream),结构关系如图1所示。

图1 Storage和Stream的关系Fig.1 Storage and Stream’s relations

结构化存储有很多优点。1)如同磁盘存储机制一样,这种存储方法可以极大程度的提高磁盘空间使用效率;2)这种存储机制便于在单个文件中就能明确内容的归属关系和分类关系;3)在软件分发过程中不需要带一大批的分发文件,就可以把数据文件归结到一个文件中去[6]。

Thumbs.db文件的访问 API(Application Programming Interface,应用程序编程接口)没有被公开,但是可以通过微软提供的结构化存储文件读写API对Thumbs.db文件结构做进一步的分析。

Thumbs.db文件中有一个名称为Catalog的数据流,它保存了整个Thumbs.db文件里面缓存的所有图片的属性信息。其余的流均以数字命名,分别对应一个缩略图文件数据,姑且把这种以数字命名的数据流称作缩略图数据流。下面以一个具体的Thumbs.db文件为例,对它的两种数据流的结构做详细地分析。

1.2 Catalog数据流

Catalog数据流包含了两部分内容,第一部分定义为Header,第二部分定义为 Items。用 DocFile Viewer打开Catalog数据流,如图2所示。

汉语拼音与英文混用这种翻译错误为数不少,即翻译内容一些是汉语拼音,一些是英文,使人不知所云。例如,在楚雄的某公交车宣传画上,“曙光医院”被译为“Shu Light Hospital”,可以改为“Shuguang Hospital”;彝人古镇中的“茶花溪”被译为“Camellia Xi”,建议改为“Camellia Stream”;“环城西路”被译为“Huan Cheng Xi Road”,应改为“West Ring Road”。

Catalog数据流的格式如表1所示。

Header偏移0H~3H通常是固定的4个字节 10H 00H 07H 00H(从低位到高位),该数据对提取图片信息无意义;偏移4H~7H表示Thumbs.db文件缓存的图片个数;偏移8H~BH和CH~FH分别表示缓存的缩略图宽的最大值和高的最大值。Items是一个列表,列表的每个元素item指明了一个被缓存的图片的相关属性。item偏移0H~3H表示该item占用的字节数(假设为N);偏移4H~7H表示缩略图的ID号;偏移8H~FH表示原图片文件的最后修改时间;紧接着的数据表示的是原图片文件的文件名的UNICODE码,以双字节0x0000结尾,占用N-18个字节;最后就是表示该item的结尾标志0x0000,占用两个字节。

图2 Catalog数据流Fig.2 Catalog stream

表1 Catalog数据流的结构Tab.1 Structure of Catalog Stream

1.3 缩略图数据流

缩略图数据流,是以他们对应的缩略图的ID号的十进制数反序命名的,这些数据流格式都是相同的,偏移0H~7H通常是固定的8个字节0CH 00H 00H 00H 01H 00H 00H 00H(从低位到高位),该数据对提取图片信息无意义;偏移8H~BH表示该缩略图文件数据占用的字节数;其余数据便是该缩略图文件的数据内容。用DocFile Viewer打开缩略图数据流,如图3所示。

图3 缩略图数据流Fig.3 Thumbnails stream

根据上面的分析,可将缩略图数据流的格式归纳如下,如表2所示。

表2 缩略图数据流的结构Tab.2 Structure of thumbnail stream

由此可见,只要通过调用微软提供的结构化存储文件读写API,借助上面分析得出的两种数据流的结构,就很容易提取出Thumbs.db文件缓存的所有图片的缩略图信息及其他属性信息。

2 Thumbs.db文件分析模块的设计与实现

文件加载模块,首先要判断被打开的文件的合法性,比如文件是否存在,是否是结构化存储文件等。合法性检验通过并成功打开之后,读取Catalog数据流,根据Catalog数据流的格式,获取该Thumbs.db文件缓存的图片总数,并遍历所有item结果,获取每张缩略图对应的ID号、对应的原图片的文件名、对应的原图片的最后修改时间。根据缩略图ID号,可以很容易的找到对应的缩略图数据流。将这些信息存储在一个item数组中。数组的大小自然是缓存的图片的总张数。

信息显示模块,即是通过文件加载模块处理后的结果,把缩略图以及缩略图对应的原图片的相关属性显示到界面上。

缩略图保存模块,也是通过文件加载模块处理后的结果,并由用户指定要保存的缩略图,从相应的缩略图数据流中读取数据,写入新的文件中,并以原文件名命名,并将新文件的最后修改时间设置为原文件的最后修改时间。

程序中涉及两个重要结构体,即Catalog数据流的头结构,和Catalog数据流的Item结构。

通过CatalogHeader的thumbCount成员可以获取到缩略图的个数,通过CatalogItem可以获取到每个缩略图的具体信息。做为文件加载模块的产物,需要定义一个全局的CatalogItem数组,用来记录Thumbs.db文件中每张缩略图的信息,信息显示模块和缩略图保存模块就可以很方便地根据这个CatalogItem数组显示信息和保存图片。

3 结束语

随着计算机取证技术的发展,数据恢复技术作为计算机取证技术中的核心技术,正在成为计算机取证领域重要的研究热点。为了实现更彻底、更全面的恢复被删除的数据,本文提出了基于应用软件层的数据恢复技术,阐述了应用软件层数据恢复技术的意义及研究内容。并开发出Thumbs.db文件分析软件,实现了以下主要功能:1)解析指定的Thumbs.db文件,显示文件中存储的现存的或已删除的图片的缩略图及文件名、最后修改时间等信息。2)可将缩略图另存为.jpg格式的文件。文件名以原文件的文件名命名,并将最后修改时间设置为原文件的最后修改时间,并将文件设置为只读。

[1]孙波.计算机取证方法关键问题研究[D].北京:中国科学院软件研究所,2004.

[2]Dixon PD.An overview of computer forensics[J].IEEE Potentials,2005:7-10.

[3]周琳娜,王东明.数字图像的取证技术[M].北京:北京邮电大学出版社,2008:10-15.

[4]蒋烨.计算机主机隐秘信息取证技术的研究[D].上海:上海交通大学,2008.

[5]刘乃琦,郭建东.系统与数据恢复技术[M].成都:电子科技大学出版社,2008:126-173.

[6]龚勇.Windows下数据恢复的研究 [D].成都:电子科技大学,2008:73-95.

猜你喜欢

缩略图文件名数据流
汽车维修数据流基础(上)
汽车维修数据流基础(下)
多种方法开启PDF缩略图预览
更进一步用好图片缩略图文件
右键调用多重更名更方便
开启Office文档缩略图预览
Excel轻松提取文件名
把我的秘密藏起来
用好Windows 10文件缩略图
基于数据流聚类的多目标跟踪算法