欢迎来到天天文库
浏览记录
ID:42927613
大小:215.00 KB
页数:6页
时间:2019-09-23
《硬盘内部数据组织结构的深入剖析-电气与信息工程学院-广东白云学院》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于Winhex下的纯手动恢复被删除文件的方法研究赖伟洪(广东白云学院计算机与电气信息工程系,广东广州510450)摘要:计算机硬盘内部结构可分为五部分:主引导区,引导区,文件分配表,目录区,数据区。这五部分是存在一定的逻辑组织关系的。通过对这种关系的深入分析和研究,就能熟知硬盘分区的相关参数和读写文件的工作原理。通过这些参数值找到相应的目录区,修改文件目录项的删除标记,并从文件目录项中获取文件的大小和起始簇号,然后计算文件所用簇数,最后在文件分配表中瘠文件链接起来。关键词:纯手动,分区,参数值,定位,修改—、引言我们在使用电脑过程中,可能会
2、出现因各种原因造成重要文件被删除的现象,那么,我们能不能通过一些方法恢复这些文件呢?诚然,要想实现这个目标,可能存在很多方法或途径能达到此要求。这里将详述基于Winhex工具软件环境下的纯手动方式实现恢复被删除文件的过程及操作原理。二、简介1、主引导区主引导扇区位于硬盘的0磁道0柱面1扇区(即硬盘第一个扇区),它主要由硬盘主引导记录MBR(MainBootRecord)、分区表DPT(DiskPartitionTable)和结束标识(55aa)组成。在这总共512字节的主引导扇区中,MBR占用了其中的446个字节(偏移0--偏移1BDH),D
3、PT占用了64个字节(偏移1BEH—偏移1FDH),最后两个字节是分区的结束标志"55,AA"(偏移1FEH-偏移1FFH)。主引导扇区中可存储4个分区表,每个分区表占用16个字节。每个分区表的16字节内容所表达的含义如下:偏移长度含义000HJ活动分区指示符,该值为8011表示为可自举分区(仅有一个),该值为00H表示其余分区。101H1分区起始磁头号。202H1低6位是分区开始的扇区,高2位是分区开始的柱面的头两位。303H1分区开始的起始柱面号的低8位。404H1系统标志,该值为01H表示采用12位FAT格式的DOS分区,该值04H表示
4、采用16位FAT格式的DOS分区,该值为05H表示为扩展DOS分区,为0611表示为DOS系统。505H1分区终止头号606H1低6位为分区结束的扇区号,头2位为结束柱面号的前2位。707H1分区结束柱面号的低8位。8-1108H4本分区前的扇区数,低位字节在前。12-150CH4本分区总的扇区数,低位字节在前。2、引导区也称操作系统引导扇区。对于DOS系统来说,通常位于硬盘的0磁道1柱面1扇区,而对于那些以多重引导方式启动的系统来说则位于相应的主分区/扩展分区的第一个扇区。操作系统引导区是操作系统可直接访问的第一个扇区,它包括一个引导程序和
5、一个本分区参数记录表(称为BPB块)。其实每个逻辑分区都有一个DBR。BPB分区参数记录表主要存储本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(AllocationUnit,也称为簇)的大小等重要参数。3、文件分配表FAT区紧接在DBR之后(对于FAT32格式,FAT1位置是从引导区的第32个扇区开始的),其大小由该分区的空间大小及文件分配单元的大小决定。由于FAT对于文件管理具有非常重要性,因此FAT还有一个备份(也称FAT2X它是在原FAT的后面再建一个同样的FAT。FAT32系统簇号用32位
6、二进制数表示,可用簇号从0000000211到0FFFFFEFIL初形成的FAT中所有项都填零来标明"未占用",但如果磁盘有局部损坏,那么格式化程序会检测出损坏的簇,在相应的项中填入特定值FFFFFFF7H标明为"坏簇"。如果当前簇是文件最后的一簇,那么将填入0FFFFFF8H或0FFFFFFFH中的值。在以后存文件时就不会再使用这个簇了。FAT的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适应,因为其中需要存放簇号。4、目录区目录区位于文件分配表FAT2之后,主要用于记录每个文件的文件名、扩展名、是否支持长文件名、起始单元(或
7、簇号)、文件属性、大小、创建日期和修改日期等内容。操作系统在读写文件时,根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置,然后顺序读取每个簇的内容就可以了。每个目录项占32字节,其定义如下:(1)1—8字节文件正名。(2)9-11字节文件扩展名。(3)12字节文件属性,按二进制位定义,最高两位保留未用,0至5位分别是只读位、隐藏位、系统位、卷标位、子目录位、归档位。(4)12—14字节仅长文件名目录项用,用来存储其对应的短文件名目录项的文件名字节校验和等。(5)14—16字节24位二进制的文件建立时间,其中的高5位为小时,次
8、6位为分钟。(6)17—18字节16位二进制的文件建立日期,其中的高7位为相对于1980年的年份值,次4位为月份,后5位为月内日期。(7)19-20字节16位二进制
此文档下载收益归作者所有