欢迎来到天天文库
浏览记录
ID:10505766
大小:37.00 KB
页数:6页
时间:2018-07-07
《ntfs文件系统的数据恢复程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、系统与数据恢复技术已经开始在一些高校的信息安全专业中开设,相信这将使得更多的学生不再畏惧数据恢复,因为笔者每次和同学谈论数据恢复技术程序设计与实现,大多数人都觉得很高深,其实这主要是因为没有真正的理解文件系统的内部结构原理,而只是在上操作系统课程时,略微学习了一些文件系统的组织结构、功能等,因而,就无从谈起数据恢复程序设计了。其实笔者在2009年第1期上深入地分析过基于NTFS的数据恢复技术,但当初笔者是第一次在黑防上发表文章,认为读者们应该都具备一定的数据恢复技术,所以没有从文件系统内部结构开始分析,而是直接与读者们交流了笔者实现数据恢复程序设计时采用的关键技术
2、,可能很多读者都没有理解清楚。下面笔者从NTFS的内部结构原理开始分析,然后逐步过渡到数据恢复程序设计的实现,希望本文的介绍再加上2009年第1期的《自主开发专业数据恢复软件》,能使读者真正地理解NTFS下的数据恢复技术,并开发出自己的专业恢复软件。本文将分三个小节进行阐述,其一,深入分析NTFS文件系统的内部结构原理,包括主控文件表MFT、NTFS下的各重要属性及其索引记录与目录结构等;其二,阐述文件删除后可恢复性原理,通过实例对比分析文件删除前后MFT各重要属性的变化;最后重点分析NTFS下已删除文件的数据恢复程序设计,提出一种已删除文件目录树重构的算法,及其
3、已删除文件的数据恢复算法,并澄清了主控文件表(MFT)80属性中数据运行的存储原理。(注:数据恢复关键代码已在2009年第1期给出,本文的意义主要是深入阐述恢复技术核心原理,这是必须的,否则初学者无法看懂01期的代码,希望想深入了解恢复核心技术的读者认真阅读)。NTFS文件系统内部结构原理NTFS文件系统的一大特点是所有的数据,包括系统信息,如引导程序、记录整个卷的分配状态位图等都以文件的形式存在。MFT是NTFS卷结构的核心,系统通过MFT来确定文件在磁盘上的位置以及文件的所有属性,MFT是一个与文件相对应的文件属性数据库,它记录了除文件数据信息外的所有属性(包
4、括文件的MAC时间、文件名、文件的父目录MFT参考号等),甚至当文件内容很短时,其内容直接在MFT的数据属性中存放,不再额外占用簇空间。这一点就有别于FAT系统了,在FAT结构中,即使文件很小,也必须占用1个簇的空间,这其实是很浪费磁盘空间的。读者可以自行使用WinHex软件测试(WinHex软件是数据恢复程序设计开发的必备工具)。1.MFT结构分析每个文件都与MFT表一一对应,而文件删除、修改等操作都在MFT表中得到了体现,故我们首先必须分析出MFT结构。同样还是采用WinHex软件进行分析。MFT由两个部分组成,即MFT头(也称文件记录头)和属性列表。MFT头
5、的长度和偏移的数据含义是固定不变的,而属性列表则是可变的,其不同的属性数据有着不同的含义,后面将对其进行具体的分析。下面先分析MFT头结构中主要的偏移位置,即笔者认为在数据恢复程序设计中必须考虑的偏移位置。(1)文件记录头前四个字节的值总为0x454C4946H,标识其为MFT记录表项。(2)偏移14H处,记录了MFT头的总长度,即MFT中第一个属性流的开始。故在程序设计中,即可采用条件语句IF(strcmp(MFTFlag,"FILE")!=0
6、
7、*(LPWORD)(lpBuffer+0x14)==0)来判断当前读取的文件是否为MFT记录表项,若非,则直接忽略此
8、文件(其中,MFTFlag表示MFT头最前面四字节值;lpBuffer表示MFT的起始偏移)。(3)偏移16H处的值为标记字节,具体含义为:00H表示已删除的文件,01H表示正常的文件,02H表示已删除的目录,03H则表示正常的目录,故偏移16H处的值可用于判断此MFT表项是否为非目录文件且是否已删除。(4)偏移18H处四字节,记录了MFT表项(即记录头和属性)的总长度,通过获取此值就可判断MFT表项的结束偏移位置,其中MFT的结束偏移处的标记为FFFFFFFFH,但在NTFS卷的一些MFT中有时会出现不止一个FFFFFFFFH的情况。属性列表也被细分成了两个逻辑
9、组成部分,即属性头部和属性数据,其中属性头部标识了属性的类型、属性数据的相对偏移及其长度。因MFT大小只有1KB,故可能导致有些属性并不能完全存放在单个的MFT表项中,NTFS采用了簇运行列表结构(runslist),将不能完全存放下来的属性值采用了多个簇分开存放,这些簇在物理上可以不连续,故NTFS引入了LCN、VCN来定位簇号,此类型的属性在NTFS卷中称为非常驻属性,反之则为常驻属性,其中10属性、30属性、90属性总为常驻属性,而用于反映数据存储位置的80属性则常为非常驻属性。下面深入地分析与数据恢复相关的属性结构。2.NTFS下重要的属性结构1)10属性
10、分析10类
此文档下载收益归作者所有