基于JPEG文件结构特征码的数据恢复技术分析与实现

2016-04-16 08:33袁海峰范晓鹤
苏州市职业大学学报 2016年1期
关键词:数据恢复

袁海峰,范晓鹤

(1.苏州科技大学 网络与教育技术中心,江苏 苏州 215011;2.苏州市职业大学 商学院,江苏 苏州 215104)



基于JPEG文件结构特征码的数据恢复技术分析与实现

袁海峰1,范晓鹤2

(1.苏州科技大学 网络与教育技术中心,江苏 苏州215011;2.苏州市职业大学 商学院,江苏 苏州215104)

摘要:结合实例分析,介绍了基于文件结构特征码.在文件系统完全被破坏,无法根据文件系统识别文件名、文件存储位置和文件大小等属性时,通过比对文件结构特征码,使用WinHex磁盘编辑软件,能恢复出有效数据文件的数据恢复技术.

关键词:WinHex;文件结构特征码;数据恢复

工作和生活中的各种图片、音频、视频、文档资料等电子数据需要存储,计算机给存储数据信息带来巨大的便利,成为人类生活中必不可少的工具之一.但同时由于病毒破坏、人为误删等原因,又面对数据丢失带来的巨大损失.为了挽救这些重要的数据信息,利用基于文件结构特征码的数据恢复技术,在被病毒破坏或人为误删导致硬盘文件系统完全破坏的情况下,即使无法根据文件系统识别文件名、文件存储位置和文件大小等属性,也可以不依赖于任何文件系统,通过比对文件结构特征码,使用WinHex磁盘编辑软件恢复出重要数据.

硬盘文件系统是操作系统用于明确硬盘分区上的文件方法和数据结构.从系统角度看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统.具体地说,负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等.会明确指出数据文件在磁盘分区上的文件名、是否可以修改、文件大小、在磁盘空间的存储结构等.根据这些信息,操作系统或文件处理程序可以正确读取出需要的数据.而由于病毒破坏或人为误删等原因,文件系统遭到破坏,会导致文件目录损坏、分区丢失,无法正确读取使用分区中的任何文件.

1 JPG文件类型的数据恢复技术分析

以JPG文件类型为实例,研究基于文件结构特征码的数据恢复技术分析与实现.针对其他的文件类型,都可以基于此技术恢复数据.

1.1JPEG文件格式简介

JPEG文件格式由联合照片专家组(joint photographic experts group)开发并命名为“ISO 10918-1”,是互联网最普遍的被用来存储和传输照片的文件格式.使用JPEG格式压缩的图形文件一般也被称为JPEG 文件,最普遍被使用的扩展名格式为.jpg,其他常用的扩展名还包括.jpeg、.jpe、.jfif以及.jif.

JPGE格式是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被舍弃.JPEG压缩技术十分先进,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在10∶1到40∶1之间.用有损压缩方式去除冗余的图像数据,在获得极高压缩率的同时,能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像品质.因此,普遍应用于互联网,可减少图像的传输时间.

1.2JPG类型文件的存储结构分析

与文件结构特征码有关的JPG文件的存储结构如表1所示.JPG文件由八个部分组成[1]:①图像开始SOI(start of image)标记;②APP0标记(marker);③APPn标记(markers),其中n=1~15(可选);④一个或者多个量化表DQT(difine quantization table);⑤帧图像开始SOF(start of frame);⑥一个或者多个霍夫曼表DHT(difine huffman table);⑦扫描开始SOS(start of scan);⑧图像结束EOI(end of image)标记.

表1 JPG文件的存储结构

2 JPG类型文件的数据恢复的实现

从JPG文件的存储结构中可以看到,每个JPG文件包含图像文件开始标记SOI(0xFFD8)和图像文件结束标记EOI(0xFFD9),而且开始标记SOI位于文件的最开始的2个字节,结束标记位于文件的最后2个字节.跟随开始标记的可能为JFIF应用数据块标记APP0或EXIF应用数据块标记APP1.但如果JPG文件包含有EXIF应用数据块标记APP1,在EXIF应用数据块中就可能会有多个0xFFD8或0xFFD9值.因此,需要跳过APP1数据块,找到下一个0xFFD9值,才是图像文件结束标记EOI(0xFFD9).以上这些特殊标记就是JPG文件类型的文件结构特征码.基于文件结构特征码,就可以恢复出JPG类型的文件.

WinHex是由X-Ways软件技术公司开发的一款专业的磁盘编辑工具,能够完整地显示和编辑任何一种文件类型的二进制内容(用十六进制方式显示),可以编辑物理磁盘或逻辑磁盘的任一扇区[1].具有高级语言解释能力,可以执行脚本程序.用WinHex磁盘编辑软件的脚本程序实现JPG类型文件的数据恢复技术.

一个20 GB的硬盘里有一些照片文件,但由于病毒破坏,文件系统已经完全损坏,不知道该硬盘原有分区的大小以及文件系统格式,也不知道有多少张照片,现在需要恢复硬盘里面的JPG照片.先找到一个JPG文件类型的测试图片,分析JPG的存储结构.如图1所示.

图1 JPG文件类型的测试图片

JPG文件类型测试图片的全部扇区结构如表2所示.由表2可以看出,文件开始前2个字节为JPG文件开始标记SOI(0xFFD8).接着2个字节为EXIF应用数据块标记APP1(0xFFE1),其大小为44 536字节(0xADF8),EXIF数据地址范围为0x00000004~0x0000ADFB,在EXIF数据中,0x0000293C、0x000087C8、0x000096C0地址处出现了0xFFD8值,0x0000276C、0x0000ADFA地址处出现了0xFFD9值.最后2个字节为图像结束标记EOI(0xFFD9).除开始标记SOI、结束标记EOI和EXIF应用数据块之外,再也没有0xFFD8值和0xFFD9值的出现.JPG文件类型的测试图片的0xFFD8和0xFFD9值分布表如表3所示.根据以上对JPG文件格式存储结构的分析,构建出JPG文件数据恢复算法.JPG文件数据恢复程序流程图如图2所示.

表2 JPG测试图片的全部扇区结构

表3 JPG文件类型的测试图片的0xFFD8 和0xFFD9值分布表

图2 JPG文件数据恢复程序流程图

根据JPG文件数据恢复程序流程图编写WinHex程序脚本,恢复硬盘里面的JPG照片.

WinHex脚本程序代码为

assign JPGFileHeaderSign0xFFD8 //JPG文件开始标记

assign JPGFileEndSign0xFFD9 //开始标记结束标记

assign JPGFileSign0 //JPG文件标记

assign JPGEXIFExist0 //JPG EXIF信息存在

assign uint16 JPGSignSize0 //JPG标记数据大小

assign uint16 tmp0 //临时变量

assign PicNum1 //恢复的文件序号

assign blockStartPosition0 //选择块的起始位置

assign blockEndPosition0 //选择块的结束位置

assign blockLastStartPosition0 //选择块的上一个起始位置

goto 0x0 //转到磁盘第一个字节

Label label1 //程序标记label1

assign blockStartPosition 0

assign blockEndPosition 0

assign JPGEXIFExist0

find JPGFileHeaderSign down //查找JPG文件开始标记

JumpTo label1

find JPGFileEndSign down //查找JPG文件开始标记

find JPGFileEndSign down //查找JPG文件开始标记

block2 blockEndPosition

Label label2

copyintonewfile "G:JPGPicture_+PicNum+.JPG"//保存选择的块为JPG文件

打开“记事本”程序,编写以上代码,另存为“JPG类型文件恢复脚本程序.whs”,然后打开要恢复的磁盘,拖入该脚本文件,即可执行.最终通过该脚本程序恢复出265张高清图片,并且全部都能正常打开,脚本程序数据恢复结果如图3所示.

图3 脚本程序数据恢复结果

常见文件类型的特征码

图形文件:

JPEG文件 (*.jpg),文件头:FFD8FFE0

PNG文件 (*.png),文件头:89504E47

GIF文件 (*.gif),文件头:47494638

TIFF文件 (*.tif),文件头:49492A00

Windows Bitmap文件(*.bmp),文件头:424D

Adobe Photoshop文件 (*.psd),文件头:38425053

音频文件:

Wave文件 (wav),文件头:57415645

MIDI文件 (mid),文件头:4D546864

MP3文件(*.mp3),文件头:494433

视频文件:

AVI文件 (*.avi),文件头:41564920

Real Media文件(*.rm),文件头:2E524D46

Quicktime文件(*.mov),文件头:6D6F6F76

文档文件:

Rich Text Format文件 (*.rtf),文件头:7B5C727466

MS Word/Excel文件(*.xls/*.doc),文件头:D0CF11E0

Adobe Acrobat文件(*.pdf),文件头:255044462D312E

网页文件:

XML文件 (*.xml),文件头:3C3F786D6C

HTML文件(*.html),文件头:68746D6C3E

邮件文件:

Outlook Express文件(*.dbx),文件头:CFAD12FEC5FD746F

Outlook文件(*.pst),文件头:2142444E

资料压缩文件:

ZIP Archive文件(*.zip),文件头:504B0304

RAR Archive文件(*.rar),文件头:52617221

以上这些常见文件都有一个共同的特征,就是在文件开始或结束处都有标记该种文件类型的文件结构特征码,以供相应的文件处理程序识别处理.正是基于文件结构特征码,就可以在文件系统完全被破坏,无法识别文件名和文件属性时,通过比对文件结构特征码,再根据相应文件的存储结构,恢复出有效数据.这种基于文件结构特征码的数据恢复技术可以不依赖于任何文件系统,正确解析文件类型的存储结构,恢复出需要的文件资料.

3 结论

基于文件结构特征码数据恢复技术,结合WinHex磁盘编辑软件编写脚本程序,就可以在文件系统完全被破坏,无法识别文件名和文件属性时,通过比对文件结构特征码,再根据相应文件的存储结构,恢复出有用的数据.这种数据恢复技术可以不限定文件类型,不依赖任何文件系统,有助于挽救无价的数据信息,实现数据的最大化恢复.

参考文献:

[1]刘伟.数据恢复技术深度揭秘[M].北京:电子工业出版社,2010:54-71.

[2]吴琪.一种NTFS硬盘数据恢复新技术设计分析[J].长春大学学报:自然科学版,2014,24(6):731-733.

(责任编辑:李 华)

The Analysis and Implementation of Data Recovery Technology Based on the Signature of JPEG Files

YUAN Hai-feng1,FAN Xiao-he2
(1.Network and Educational Technology Center,Suzhou University of Science and Technology,Suzhou 215011,China;2.School of Business,Suzhou Vocational University,Suzhou 215104,China)

Abstract:By analyzing relevant examples, this paper introduces a data recovery technology based on the signature of files.Even under the circumstance when the file system is completely destroyed and it’s impossible to identify the file name, size, storage location and other attributes according to the file system, this technology, by matching the signature of a file, provides a solution to the recovery of valid-data-files with the disk editor software WinHex.

Key words:WinHex;signature of files;data recovery

作者简介:袁海峰(1977-),男,河南周口人,工程师,主要从事网络架构研究.

收稿日期:2015-09-05;修回日期:2015-10-02

DOI:10.16219/j.cnki.szxbzk.2016.01.007

中图分类号:TP311

文献标志码:A

文章编号:1008-5475(2016)01-0031-05

引文格式:袁海峰,范晓鹤.基于JPEG文件结构特征码的数据恢复技术分析与实现[J].苏州市职业大学学报,2016,27(1):31-35.

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