硬盘数据恢复技术原理及其实现.doc_第1页
硬盘数据恢复技术原理及其实现.doc_第2页
硬盘数据恢复技术原理及其实现.doc_第3页
硬盘数据恢复技术原理及其实现.doc_第4页
硬盘数据恢复技术原理及其实现.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硬盘数据恢复技术探讨金元兵 唐华灵西南大学信息管理系,重庆 荣昌 402460摘 要:数据恢复技术是保证计算机数据安全的重要技术,是当前各行各业信息化关注的热点问题。文章通过对硬盘的数据存储结构的分析,探讨了硬盘数据恢复的基本技术,并结合实际软件开发讨论了数据恢复方法及其实现。关键词:数据恢复;删除恢复;格式化恢复;raw恢复 the analysis of hard disk data recovery technologyjin yuanbin tang hualingdepartment of the information management southwest university, 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 software development and data recovery methods to achieve.key word: data recovery; deleted recovery; formated recovery; raw recovery;1 引言随着科学技术的迅猛发展,信息化已经成为当前各行各业关注的重点问题。而数据作为信息化管理的核心部分,其安全性已受到了人们越来越多的重视,如何能够迅速而正确地恢复数据也就成了至关重要的问题。本文结合数据恢复软件开发实例,讨论数据恢复的方法实现。2 数据恢复的分类从数据恢复方式来看,主要有软件恢复方式、软硬件结合恢复方式和深层信号还原方式三种。软件恢复方式主要是在硬盘还可以使用的情况下用数据恢复软件恢复数据,这种恢复方式恢复成本低,但对于那些已经坏掉的硬盘就显得无能为力了。软硬件结合方式则是先修复硬盘或开盘读出盘片中的数据后再用软件恢复数据,这种方式的数据恢复率是相当惊人的,即使是位于物理坏道上面的数据,由于多种信息的缺失而无法找出准确的数据值,也可以通过大量的运算,在多种可能的数据值之间进行逐一代入,结合其他相关扇区的数据信息,进行逻辑合理性校验,从而找出逻辑上最符合的真值,但这种方式还是不能恢复被覆盖了的数据。深层信号还原方式则通过分析盘片表面的深层磁介质状态,通过使用不同波长、不同强度的射线对这个晶体进行照射,可以产生不同的反射、折射和衍射信号,然后通过分析各种反射、折射和衍射信号,就可以帮助我们“看到”在不同深度下这个磁介质晶体的残影。但由于这种方式现实技术复杂、恢复成本高,而且目前世界范围内也没有几个国家可以拥有这样的技术,只有极少数规模庞大的计算机公司和不计成本的政府机关能拥有这样级别的数据恢复设备。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字节的主引导程序,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位为扇区号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字节,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.839,取整为235,所以该分区的fat表至少应该由235个扇区组成。dir(directory)区为文件目录表,它与fat配合确定文件的具体位置。注意,在dir区仅保存文名、长度、起始位置、创建时间、修改日间和最后访问日期。数据区即文件真正存放的位置,保存着文件的详细内容。4 数据恢复技术4.1 删除恢复4.1.1 fat分区文件恢复在fat分区中,当我们删除一个文件时仅仅修改了fat区和dir区的数据内容。在这个过程中,系统将dir区中对应文件的第一个字节改为“e5h”,然后再将对应的fat记录清零释放使用空间,将对应的区域标记为未使用,而修改数据区的内容。下面是对删除test.txt文件前和删除文件后的对比分析图:图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分区文件恢复ntfs分区与fat类似,只是在删除文件时不是修改的fat和dir,而是修改的mft和位图记录。删除文件的过程中将对应文件的mft记录中偏移16h的2字节改为0即代表该mft记录已经被删除,然后再将该mft记录在mft位图中所对应的位清零,最后将文件所对应的位图清零就完成了文件的删除操作。mft记录及数据流格式请参考 /ntfs。mft记录的数据(80h)中详细的记录的文件各数据段的起始位置和长度,可以方便的恢复数据,而不用像fat那样为文件不是连续存放担心恢复效果。4.2 格式化恢复4.2.1 fat分区当我们重新格式化磁盘时仅仅重写了dbr、fat和根目录区的数据,所以分区、格式化后仍然可以恢复磁盘中的数据。但由于分区被重新格式化后无法找到以前分区的根目录入口,并且无法准确知道以前分区的簇大小。因此格式化恢复的重难点在于确定簇大小和根目录的位置。用过dos系统的人都知道用dir显示子目录内容时会发现里面有“.”和“.”两个目录,其中“.”代表当前目录,“.”代表上一级目录。下面我们先看一下fat32中的fdt(file directory table)结构,如图10所示: 未用存档子目录卷标系统隐含读写76543210属性扩展名文件名文件创建时间未用起始簇号的高16位最近修改日期最近访问日期文件长度文件创建日期最近修改时间起始簇号的低16位图 10 fat32的fdt表项分析在格式化恢复时,首先确定数据区的起始位置和簇大小,然后再搜索分区中的残留目录数据,最后恢复数据。确定数据区的起始位置的基本步骤是:逐一读取分区中的扇区内容,判断扇区中的数据是不是子目录数据,即判断偏移0字节、32字节、33字节处是否为“.”(“2eh”)且是否为目录。若是,则确定扇区所对应的簇号,并计算簇大小,然后再根据“数据区起始扇区号 = 当前扇区号 (当前簇号 2) 每簇扇区数”,公式减2是因为在fat中前两个簇号为保留簇号,未使用;否则继续搜索下一个扇区。然后再继续搜索子目录数据,直到搜索完整个分区。这种方式有的优点是:实现简单,不需要掌握其体的文件格式;搜索速度较快。缺点是:它只能找出每个目录中第一个簇内的fdt,当一个目录中的文件较多时无法找到存储在后面的fdt;当文件不是连续存放时恢复难度较大。4.2.2 ntfs分区恢复ntfs分区中的数据,主要通过查找分区中残留的mft记录来恢复数据。仔细阅读ntfs分区资料后会发现所有的文件描述信息都存储在文件的mft记录中,其中包括文件名,大小,起始位置,长度,创建日期等信息;其次是每个mft记录头都以“file”标记开头。因此恢复ntfs分区中的文件可以分为以下几步:在分区中查找以“file”开头的扇区;进一步分析扇区中的内容并判断是否为真正的mft记录;按照mft记录格式解释读出的数据内容;根据文件的大小和文件所占用的簇数计算出以前分区的簇大小;恢复数据。由于在mft的数据流中详细地记录了文件的存储位置,所以在ntfs分区中采用格式化恢复方式恢复数据的成功比fat分区高得多。 4.3 raw恢复在恢复数据时,可能会遇到目录结构或mft已经完全破坏了的情况,而文件真正的数据内容并没有被覆盖,此时删除恢复和格式化恢复方式就显得无能为力了。raw恢复是一种文件搜索算法,使用这种方式将读取分区中的所有扇区,从而搜索特定的文件头标记。基本步骤为:首先将从扇区中读出的数据与数据库中的数据比较,判断是否为已知的文件格式;再根据文件头和数据库中的数据确定文件大小;最后恢复连续区域内的特定大小的数据;采用这种恢复方式的优点是恢复成功率高。缺点有:查找文件速度慢,每读出一个扇区数都要与数据库中的数据进行比较;实现难度大,需要程序员查阅大量的数据资料并了解各种类型文件的文件头;由于文本文件是无格式文件,没有文件头,因此无法恢复纯文本文件;由于这种方式是从文件头开始处连续读取指定大小的数据到特定文件中,所以无法正确恢复零散存放的文件。5 结束语本文虽然讨论了windows

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论