硬盘数据恢复技术原理及其实现.doc

上传人:仙人指路1688 文档编号:2883648 上传时间:2023-03-01 格式:DOC 页数:8 大小:195.50KB
返回 下载 相关 举报
硬盘数据恢复技术原理及其实现.doc_第1页
第1页 / 共8页
硬盘数据恢复技术原理及其实现.doc_第2页
第2页 / 共8页
硬盘数据恢复技术原理及其实现.doc_第3页
第3页 / 共8页
硬盘数据恢复技术原理及其实现.doc_第4页
第4页 / 共8页
硬盘数据恢复技术原理及其实现.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《硬盘数据恢复技术原理及其实现.doc》由会员分享,可在线阅读,更多相关《硬盘数据恢复技术原理及其实现.doc(8页珍藏版)》请在三一办公上搜索。

1、硬盘数据恢复技术探讨金元兵 唐华灵西南大学信息管理系,重庆 荣昌 402460摘 要:数据恢复技术是保证计算机数据安全的重要技术,是当前各行各业信息化关注的热点问题。文章通过对硬盘的数据存储结构的分析,探讨了硬盘数据恢复的基本技术,并结合实际软件开发讨论了数据恢复方法及其实现。关键词:数据恢复;删除恢复;格式化恢复;Raw恢复 the Analysis of Hard Disk Data Recovery TechnologyJin Yuanbin Tang HualingDepartment of the Information Management Southwest University

2、, ChongQing RongChang 402460Abstract: Data recovery, which is vital to keep safe to computer data. nowadays, business information is a hot issue. Through the analysis of the hard disk data storage structure, and the technology of data recovery, in conjunction with the discussion of the actual softwa

3、re development and data recovery methods to achieve.Key Word: Data recovery; Deleted recovery; Formated recovery; Raw recovery;1 引言随着科学技术的迅猛发展,信息化已经成为当前各行各业关注的重点问题。而数据作为信息化管理的核心部分,其安全性已受到了人们越来越多的重视,如何能够迅速而正确地恢复数据也就成了至关重要的问题。本文结合数据恢复软件开发实例,讨论数据恢复的方法实现。2 数据恢复的分类从数据恢复方式来看,主要有软件恢复方式、软硬件结合恢复方式和深层信号还原方式三种

4、。软件恢复方式主要是在硬盘还可以使用的情况下用数据恢复软件恢复数据,这种恢复方式恢复成本低,但对于那些已经坏掉的硬盘就显得无能为力了。软硬件结合方式则是先修复硬盘或开盘读出盘片中的数据后再用软件恢复数据,这种方式的数据恢复率是相当惊人的,即使是位于物理坏道上面的数据,由于多种信息的缺失而无法找出准确的数据值,也可以通过大量的运算,在多种可能的数据值之间进行逐一代入,结合其他相关扇区的数据信息,进行逻辑合理性校验,从而找出逻辑上最符合的真值,但这种方式还是不能恢复被覆盖了的数据。深层信号还原方式则通过分析盘片表面的深层磁介质状态,通过使用不同波长、不同强度的射线对这个晶体进行照射,可以产生不同的

5、反射、折射和衍射信号,然后通过分析各种反射、折射和衍射信号,就可以帮助我们“看到”在不同深度下这个磁介质晶体的残影。但由于这种方式现实技术复杂、恢复成本高,而且目前世界范围内也没有几个国家可以拥有这样的技术,只有极少数规模庞大的计算机公司和不计成本的政府机关能拥有这样级别的数据恢复设备。3 硬盘的存储结构图1表示了硬盘的存储结构,包括MBR区、DBR区、FAT区、Dir区和数据区五个部分。MBR区(0磁道0柱面1扇区)DBR区(0磁道1柱面1扇区)FAT区FAT1FAT2Dir区数据区图1MBR(Main Boot Record)区位于整个硬盘的0磁道0柱面1扇区,共占512字节。它由 446

6、字节的主引导程序,64字节的分区表记录和2字节的结束标记(“55AA”)组成。它的具体内容由分区程序产生,不属于任何一个操作系统,其主要作用是检查分区表是否正确并读出引导分区中的操作系统引导程序。它不能被操作系统直接访问,一般通过Int 13或扩展Int 13读取数据。在DOS或Win9x下运行Debug命令,然后依次输入下面的代码读取MBR内容:-a 汇编指令XXXX:0100 mov ax, 201 ah为操作方式,2为读,3为写;al读写的扇区数XXXX:0103 mov bx, 400 bx为读写数据所在的内存地址XXXX:0106 mov cx, 1 高10位为柱面号,低6位为扇区号

7、XXXX:0109 mov dx, 80 dh为磁头号,dl为驱动器号XXXX:010C int 13 调磁盘读写中断XXXX:010E int 3 断点中断XXXX:010F-g=100 执行上述汇编-d 400 显示MBR内容DBR(DOS Boot Record)区位于0磁道1柱面1扇区,是操作系统可以直接访问的第一个扇区,它包含引导程序和BPB(BIOS Parameter Block)。它由格式化程序产生,不同的分区格式的DBR有所不同。FAT(File Allocation Table)区文件系统给文件分配空间的一张表,它的每一项都与磁盘的数据块一一对应。在FAT16中每项占用2字

8、节,FAT32中每项占用4字节。因此在知道分区大小的情况下不难算出FAT的长度。为了防止FAT意外损坏,系统特在FAT后面备份了一个一模一样的FAT,当第一个FAT遭破坏后可以将第二个FAT恢复后继续使用。FAT16分区的FAT长度计算公式为:FAT扇区数 = FAT32分区的FAT长度计算公式为:FAT扇区数 = 若结果不为整数时,则按进一法取整。下面为FAT16分区的计算例子:由240975个扇区组成的FAT16分区中,保留扇区数为6,根目录扇区数为32,每个簇4个扇区组成,求FAT至少应该包含多少个扇区?FAT = (240975 6 2 FAT 32) / 4 2 + 4 234.83

9、9,取整为235,所以该分区的FAT表至少应该由235个扇区组成。Dir(Directory)区为文件目录表,它与FAT配合确定文件的具体位置。注意,在Dir区仅保存文名、长度、起始位置、创建时间、修改日间和最后访问日期。数据区即文件真正存放的位置,保存着文件的详细内容。4 数据恢复技术4.1 删除恢复4.1.1 FAT分区文件恢复在FAT分区中,当我们删除一个文件时仅仅修改了FAT区和Dir区的数据内容。在这个过程中,系统将Dir区中对应文件的第一个字节改为“E5H”,然后再将对应的FAT记录清零释放使用空间,将对应的区域标记为未使用,而修改数据区的内容。下面是对删除Test.txt文件前和

10、删除文件后的对比分析图:图2 删除Test.txt文件前的资源管理器图3 删除Test.txt文件后的资源管理器图4 删除Test.txt文件前的FAT图5 删除Test.txt文件后的FAT图6 删除Test.txt文件前的Dir图7 删除Test.txt文件后的Dir图8 删除Test.txt文件前的数据区图9 删除Test.txt文件前的数据区 因此,当一个文件是连续存放的时,我们可以比较容易地恢复删除的文件。但有时我们可能会修改某些文件内容或者磁盘剩余空间不是很大的候时,都可能使文件零散存放,这时在恢复数据时就只能从多方面来判断分析数据才能正确地恢复数据。4.1.2 NTFS分区文件恢

11、复NTFS分区与FAT类似,只是在删除文件时不是修改的FAT和Dir,而是修改的MFT和位图记录。删除文件的过程中将对应文件的MFT记录中偏移16H的2字节改为0即代表该MFT记录已经被删除,然后再将该MFT记录在MFT位图中所对应的位清零,最后将文件所对应的位图清零就完成了文件的删除操作。MFT记录及数据流格式请参考 http:/www.reddragonfly.org/ntfs。MFT记录的数据(80H)中详细的记录的文件各数据段的起始位置和长度,可以方便的恢复数据,而不用像FAT那样为文件不是连续存放担心恢复效果。4.2 格式化恢复4.2.1 FAT分区当我们重新格式化磁盘时仅仅重写了D

12、BR、FAT和根目录区的数据,所以分区、格式化后仍然可以恢复磁盘中的数据。但由于分区被重新格式化后无法找到以前分区的根目录入口,并且无法准确知道以前分区的簇大小。因此格式化恢复的重难点在于确定簇大小和根目录的位置。用过DOS系统的人都知道用Dir显示子目录内容时会发现里面有“.”和“.”两个目录,其中“.”代表当前目录,“.”代表上一级目录。下面我们先看一下FAT32中的FDT(File Directory Table)结构,如图10所示: 未用存档子目录卷标系统隐含读写76543210属性扩展名文件名文件创建时间未用起始簇号的高16位最近修改日期最近访问日期文件长度文件创建日期最近修改时间起

13、始簇号的低16位图 10 FAT32的FDT表项分析在格式化恢复时,首先确定数据区的起始位置和簇大小,然后再搜索分区中的残留目录数据,最后恢复数据。确定数据区的起始位置的基本步骤是:逐一读取分区中的扇区内容,判断扇区中的数据是不是子目录数据,即判断偏移0字节、32字节、33字节处是否为“.”(“2EH”)且是否为目录。若是,则确定扇区所对应的簇号,并计算簇大小,然后再根据“数据区起始扇区号 = 当前扇区号 (当前簇号 2) 每簇扇区数”,公式减2是因为在FAT中前两个簇号为保留簇号,未使用;否则继续搜索下一个扇区。然后再继续搜索子目录数据,直到搜索完整个分区。这种方式有的优点是:实现简单,不需

14、要掌握其体的文件格式;搜索速度较快。缺点是:它只能找出每个目录中第一个簇内的FDT,当一个目录中的文件较多时无法找到存储在后面的FDT;当文件不是连续存放时恢复难度较大。4.2.2 NTFS分区恢复NTFS分区中的数据,主要通过查找分区中残留的MFT记录来恢复数据。仔细阅读NTFS分区资料后会发现所有的文件描述信息都存储在文件的MFT记录中,其中包括文件名,大小,起始位置,长度,创建日期等信息;其次是每个MFT记录头都以“FILE”标记开头。因此恢复NTFS分区中的文件可以分为以下几步:在分区中查找以“FILE”开头的扇区;进一步分析扇区中的内容并判断是否为真正的MFT记录;按照MFT记录格式

15、解释读出的数据内容;根据文件的大小和文件所占用的簇数计算出以前分区的簇大小;恢复数据。由于在MFT的数据流中详细地记录了文件的存储位置,所以在NTFS分区中采用格式化恢复方式恢复数据的成功比FAT分区高得多。 4.3 Raw恢复在恢复数据时,可能会遇到目录结构或MFT已经完全破坏了的情况,而文件真正的数据内容并没有被覆盖,此时删除恢复和格式化恢复方式就显得无能为力了。Raw恢复是一种文件搜索算法,使用这种方式将读取分区中的所有扇区,从而搜索特定的文件头标记。基本步骤为:首先将从扇区中读出的数据与数据库中的数据比较,判断是否为已知的文件格式;再根据文件头和数据库中的数据确定文件大小;最后恢复连续

16、区域内的特定大小的数据;采用这种恢复方式的优点是恢复成功率高。缺点有:查找文件速度慢,每读出一个扇区数都要与数据库中的数据进行比较;实现难度大,需要程序员查阅大量的数据资料并了解各种类型文件的文件头;由于文本文件是无格式文件,没有文件头,因此无法恢复纯文本文件;由于这种方式是从文件头开始处连续读取指定大小的数据到特定文件中,所以无法正确恢复零散存放的文件。5 结束语本文虽然讨论了Windows系统下各种数据恢复技术,但数据恢复毕竟只是数据丢失后的一个补救措施。我们应该养成备份重要数据的良好习惯,特别是操作员应该时刻备份数据,谨防数据丢失。参考文献:1 戴士剑,涂彦晖.数据恢复技术(第二版).北京电子工业出版社,20052 3 4 http:/www.reddragonfly.org/ntfs7

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号