硬盘数据恢复技术原理及其实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
硬盘数据恢复技术探讨
曾志
摘要:数据恢复技术是保证计算机数据安全的重要技术,是当前各行各业信息化关注的热点问题。文章通过对硬盘的数据存储结构的分析,探讨了硬盘数据恢复的基本技术,并结合实际软件开发讨论了数据恢复方法及其实现。
关键词:数据恢复;删除恢复;格式化恢复;Raw恢复
1 引言
随着科学技术的迅猛发展,信息化已经成为当前各行各业关注的重点问题。而数据作为信息化管理的核心部分,其安全性已受到了人们越来越多的重视,如何能够迅速而正确地恢复数据也就成了至关重要的问题。本文结合数据恢复软件开发实例,讨论数据恢复的方法实现。
2 数据恢复的分类
从数据恢复方式来看,主要有软件恢复方式、软硬件结合恢复方式和深层信号还原方式三种。
软件恢复方式主要是在硬盘还可以使用的情况下用数据恢复软件恢复数据,这种恢复方式恢复成本低,但对于那些已经坏掉的硬盘就显得无能为力了。软硬件结合方式则是先修复硬盘或开盘读出盘片中的数据后再用软件恢复数据,这种方式的数据恢复率是相当惊人的,即使是位于物理坏道上面的数据,由于多种信息的缺失而无法找出准确的数据值,也可以通过大量的运算,在多种可能的数据值之间进行逐一代入,结合其他相关扇区的数据信息,进行逻辑合理性校验,从而找出逻辑上最符合的真值,但这种方式还是不能恢复被覆盖了的数据。深层信号还原方式则通过分析盘片表面的深层磁介质状态,通过使用不同波长、不同强度的射线对这个晶体进行照射,可以产生不同的反射、折射和衍射信号,然后通过分析各种反射、折射和衍射信号,就可以帮助我们“看到”在不同深度下这个磁介质晶体的残影。但由于这种方式现实技术复杂、恢复成本高,而且目前世界范围内也没有几个国家可以拥有这样的技术,只有极少数规模庞大的计算机公司和不计成本的政府机关能拥有这样级别的数据恢复设备。
3 硬盘的存储结构
图1表示了硬盘的存储结构,包括MBR区、DBR区、FAT区、Dir区和数据区五个部
分。
图1
MBR(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 扇区数 = 512
42 每簇扇区数根目扇区数 - 2 扇区数FAT -保留扇区数-扇区总+⨯⨯数分区 FAT32分区的FAT 长度计算公式为:
FAT 扇区数 = 512
84 每簇扇区数 2 扇区数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
图6 删除Test.txt文件前的Dir
图7 删除Test.txt文件后的Dir
图8 删除Test.txt文件前的数据区