浅谈Windows数据恢复原理及其实现.doc

上传人:创****公 文档编号:3044197 上传时间:2019-05-18 格式:DOC 页数:8 大小:195.50KB
下载 相关 举报
浅谈Windows数据恢复原理及其实现.doc_第1页
第1页 / 共8页
浅谈Windows数据恢复原理及其实现.doc_第2页
第2页 / 共8页
浅谈Windows数据恢复原理及其实现.doc_第3页
第3页 / 共8页
浅谈Windows数据恢复原理及其实现.doc_第4页
第4页 / 共8页
浅谈Windows数据恢复原理及其实现.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

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

2、Southwest University, ChongQing RongChang 402460 Abstract: 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

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

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

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

6、1柱面 1扇区) FAT区 FAT1 FAT2 Dir区 数据区 图 1 MBR( Main Boot Record)区位于 整个硬盘的 0磁道 0柱面 1扇区 , 共占 512 字节 。它由 446 字节的主引导程序, 64 字节的分区表记录和 2 字节的结束标记 (“ 55AA”)组成 。 它的具体内容由分区程序产生, 不属于任何一个操作系统,其主要作用是检查分区表是否正确并读出引导分区中的操作系统引导程序 。 它 不能被操作系统直接访问,一般通过 Int 13 或扩展 Int 13读取数据。 在 DOS或 Win9x 下 运行 Debug命令 ,然后依次输入下面的代码读 取 MBR 内容

7、 : -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 为驱动器号 2 XXXX:010C int 13 调磁盘读写中断 XXXX:010E int 3 断点中断 XXXX:010F -g=100 执行上述汇编 -d 400 显示 MBR 内容 DBR( DOS Boot Record) 区位于 0 磁道

8、 1柱面 1扇区 ,是操作系统可以直接访问的第一个扇区 ,它包含引导程序和 BPB(BIOS Parameter Block)。它由格式化程序产生,不同的 分区格式 的 DBR 有所不同 。 FAT( File Allocation Table) 区 文件系统给文件分配空间的一张表,它的每一项都与磁盘的数据块一一对应。在 FAT16 中每项占用 2字节, FAT32 中每项 占用 4字节。因此在知道分区大小的情况下不难算出 FAT的长度。 为了防止 FAT意外损坏,系统特在FAT后面备份了一个一模一样的 FAT, 当第一个 FAT遭破坏后可以将第二个 FAT 恢复后继续使用。 FAT16 分区

9、的 FAT长度计算公式为: FAT 扇区数 = 5 1 2 42 每簇扇 区数根目扇区数 - 2 扇区数F A T-保留扇区数-扇区 总 数分区FAT32 分区的 FAT 长度计算公式为: FAT 扇区数 = 5 1 2 84 每簇扇 区数2 扇区数F A T-保留扇区数-扇区 总 数分区若 结果不为整数时,则 按进一法取整 。 下面为 FAT16 分区的计算例子: 由 240975 个扇区组成的 FAT16 分区中 ,保留扇区数为 6,根目录扇区数为 32,每个簇 4 个扇区组成,求 FAT至少应该包含多少个扇区? FAT = (240975 6 2 FAT 32) / 4 2 + 4 23

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

11、应的区域标记为未使用 ,而修改数据区的内容。 下面是对删除 Test.txt 文件 前和删除 文件 后的 对比 分析 图 : 图 2 删除 Test.txt 文件前的资源管理器 图 3 删除 Test.txt 文件后的资源管理器 4 图 4 删除 Test.txt 文件前的 FAT 图 5 删除 Test.txt 文件后的 FAT 图 6 删除 Test.txt 文件前的 Dir 图 7 删除 Test.txt 文件后的 Dir 图 8 删除 Test.txt 文件前的数据区 5 图 9 删除 Test.txt 文件前的数据区 因此,当一个文件是连续存放的时,我们可以比较容易地恢复删除的文件。

12、但有时我们可能会修改某些文件内容或者磁盘剩余空间不是很大的候时,都可能使文件零散存放,这时在恢复数据时就只能从多方面来判断分析数据才能正确地恢复数据。 4.1.2 NTFS 分区 文件恢复 NTFS 分区与 FAT类似,只是在删除 文件时不是修改的 FAT 和 Dir, 而是修改的 MFT和位图记录。 删除文件 的过程中将对应文件的 MFT记录中偏移 16H的 2 字节改为 0即代表该 MFT 记录已经被删除,然后再将该 MFT记录在 MFT 位图中所对应的位清零,最后将文件所对应的位图清零就完成了文件的删除操作。 MFT 记录及数据流格式请参考 http:/www.reddragonfly.

13、org/ntfs。 MFT 记录的数据( 80H)中详细的记录的文件各数据段的起始位置和长度,可以方便的恢复数据,而不用像 FAT那样为文件不是连续存放担心恢复效果。 4.2 格式化恢复 4.2.1 FAT 分区 当我们重新格式化磁盘时仅仅重写了 DBR、 FAT 和根目录区的数据,所以分区、格式化后仍然可以恢复磁盘中的数据。但由于分区被重新格式化后无法找到以前分区的根目录入口,并且无法准确知道以前分区的簇大小。因此 格式化恢复的 重难 点在于确定 簇大小和 根目录的位置。 用过 DOS 系统的人都知道用 Dir 显示子目录内容时会发现里面有“ .”和“ .”两个目录,其中“ .”代表当前目录

14、,“ .” 代表上一级目录。 下面我们先看一 下 FAT32 中 的 FDT( File Directory Table) 结构,如图 10所示 : 6 未 用 存 档 子目录 卷 标 系 统 隐 含 读 写 7 6 5 4 3 2 1 0 图 10 FAT32 的 FDT 表项分析 在格式化恢复时,首先确定数据区的起始位置 和簇大小 ,然后再搜索分区中的残留目录数据,最后恢复数据。 确定数据区的起始位置的基本步骤是:逐一读取分区中的扇区内容,判断扇区中的数据是不是子目录数据,即判断偏移 0 字节、 32 字节、 33字节处是否为 “ .” (“ 2EH”) 且是否为目录 。 若是 , 则确定

15、扇区所对应 的簇号,并计算簇大小 ,然后再根据 “ 数据区起始扇区号 = 当前扇区号 (当前簇号 2) 每簇扇区数 ”, 公式 减 2 是因为在 FAT中前 两 个簇号为保留簇号,未使用 ;否则继续搜索下一个扇区 。 然后再继续搜索子目录 数据 , 直到搜索完 整个 分区。 这种方式有 的优点是: 实现简单,不需要掌握其体的文件格式; 搜索速度较快。 缺点是: 它只能找出每个目录中第一个簇内的 FDT,当一个目录中的文件较多时无法找到存储在后面的 FDT; 当文件不是连续存放时恢复难度较大。 4.2.2 NTFS 分区 恢复 NTFS 分区中的数据 ,主要通过查找分区中残留的 MFT 记录来恢

16、复数据 。仔细阅读 NTFS 分区资料后会发现所有的文件描述信息都存储在文件的 MFT 记录中,其中包括文件名,大小,起始位置,长度,创建日期等信息 ;其次是每个 MFT记录头都以“ FILE”标记 开头 。 因此 恢复 NTFS 分区中的文件可以分为以下几步: 在分区中查找以“ FILE”开头的扇区 ; 进一步分析扇区中的内容 并判断是否为真正的 MFT 记录 ; 文件名 扩 展名 属性 未用 文件创建时间 文件创建日期 最近访问日期 起始簇号的高 16 位 最近修改时间 最近修改日期 起始簇号 的低 16位 文件长度 7 按照 MFT 记录格式解释 读出的 数据内容 ; 根据 文件的大小和

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

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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 >

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。