基于NTFS文件系统数据恢复编程技术.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于NTFS文件系统数据恢复编程技术

基于NTFS文件系统数据恢复编程技术   【 摘 要 】 文章针对由主观因素造成计算机中数据丢失的情况提出了一种Windows NTFS 文件系统下数据恢复的实现方法,介绍了NTFS 数据恢复编程的原理,设计了数据恢复的编程框架,并结合实际编程完成了数据恢复的实现,最后通过测试验证了程序的功能可用性。本程序创新性采用自定义结构体的方式扫描MFT表,速度飞快,同时能读出Linux环境下用DD命令拷贝的文件,所有数据恢复操作均在内存中进行,不会对磁盘写入任何数据。   【 关键词 】 NTFS;数据恢复;编程   1 引言   随着信息化社会的快速发展及电脑的广泛应用,使用计算机进行犯罪的案件越来越多,给人们和社会造成了巨大的财产损失。然而,为了逃脱公安机关的打击,犯罪分子经常将计算机上的犯罪数据信息彻底删除,或将分区甚至整个硬盘进行格式化操作,从而使得重要的犯罪证据丢失,给案件的取证带来极大的困难。因此,如何迅速准确地在计算机上恢复出犯罪证据,成为切实打击犯罪的一个关键因素。   在NTFS卷中,虽然文件被删除了,但其MFT表项并没有清空。不过删除文件的同时,MFT被清空的可能性也存在,在极端情况下,如系统分配给MFT的空间已经接近用完时,系统在删除文件的同时也会将MFT清空,并直接用其他文件的MFT覆盖该文件的MFT。一般情况下,只要MFT表项没有清空,则文件MFT表项中80属性值就不会清空,也就是说文件数据还存在磁盘上,故文件数据就存在恢复的可能。   2 编程需要的原理   要想进行数据恢复,就必须知道文件存储的原理,本文首先对NTFS 文件系统、主文件表MFT结构以及文件的几个关键属性(即文件名、标准信息、数据流等)进行分析。   2.1 NTFS文件系统概述   NTFS是随着 Windows NT操作系统而产生的,全称为“New Technology File System”,中文意为新技术文件系统,简称“NTFS”。NTFS将分区上所有的数据都视为文件,其中大约12%分配给了MFT,以满足其不断增长的文件数量。为了保持MFT元文件的连续性,MFT对这12%的空间享有独占权,余下的88%的空间被分配用来存储文件。在文件存储部分中部存放的是MFT前4个(或者更多)元数据文件的备份。如图1所示,显示了NTFS文件系统的结构。   2.2 MFT(Master File Table)结构分析   NTFS文件系统的一大特点是所有的数据,包括系统信息,如引导程序、记录整个卷的分配状态位图等都以文件的形式存在。MFT是NTFS卷结构的核心,系统通过MFT来确定文件在磁盘上的位置以及文件的所有属性,MFT是一个与文件相对应的文件属性数据库,它记录了除文件数据信息外的所有属性(包括文件的MAC时间、文件名、文件的父目录MFT参考号等),甚至当文件内容很短时,其内容直接在MFT的数据属性中存放,不再额外占用簇空间。   每个文件都与MFT表一一对应,而文件删除、修改等操作都在MFT表中得到了体现,故我们首先必须分析出MFT结构。我们用工具软件将分区底层打开发现,MFT由两个部分组成,即MFT头(也称文件记录头)和属性列表。MFT头的长度和偏移的数据含义是固定不变的,而属性列表则是可变的,其不同的属性数据有着不同的含义。下面首先分析MFT头结构中主要的偏移位置,即在数据恢复程序设计中必须考虑的偏移位置,如表1所示。   2.3 NTFS下重要的属性结构   (1)10属性分析。10类型属性即$STANDARD_ INFORMATION属性,为文件的标准信息。包括一些基本的文件属性,如只读、系统、存档、隐藏及MAC属性。其中,相对属性头的偏移14H~15H两字节值为10属性值的开始偏移,偏移04H~08H四字节值为10属性的总长度。   (2)30属性分析。30类型属性即$FILE_NAME属性,用于存储文件名,总为常驻属性,其相对属性头的偏移代表的含义和10属性一样,不再赘述。属性值中包括父目录的MFT参考号、文件名,获取父目录的MFT参考号。需要注意的是有些MFT表项中会出现两个30属性,前者用于兼容8.3格式文件,假设文件名为recovery.txt的文件,在首个30属性中,其文件名则为RECOVE~1.txt,共12字节;后者用于记录文件或目录的长文件名。   (3)80属性分析,80属性即$DATA属性,用于存放文件真实数据或文件数据存放的物理偏移位置。80属性可为常驻属性也可以是非常驻属性,取决于文件数据大小。当文件数据很小,能直接在MFT中存放时,则为常驻属性;反之,当文件很大时,则为非常驻属性,即会在属性值位置记录文件数据的簇运行列表(Data Runslist),这个列表直接反映了文件

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档