基于文件系统的数据恢复与隐藏技术ppt培训课件

上传人:aa****6 文档编号:57216668 上传时间:2018-10-20 格式:PPT 页数:43 大小:397.50KB
返回 下载 相关 举报
基于文件系统的数据恢复与隐藏技术ppt培训课件_第1页
第1页 / 共43页
基于文件系统的数据恢复与隐藏技术ppt培训课件_第2页
第2页 / 共43页
基于文件系统的数据恢复与隐藏技术ppt培训课件_第3页
第3页 / 共43页
基于文件系统的数据恢复与隐藏技术ppt培训课件_第4页
第4页 / 共43页
基于文件系统的数据恢复与隐藏技术ppt培训课件_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《基于文件系统的数据恢复与隐藏技术ppt培训课件》由会员分享,可在线阅读,更多相关《基于文件系统的数据恢复与隐藏技术ppt培训课件(43页珍藏版)》请在金锄头文库上搜索。

1、基于文件系统的数据恢复 与隐藏技术,刘旭 http:/ 磁盘上数据文件被删除后,利用数据恢复技术有条件地恢复被删除的数据。此技术也可用于磁盘灾难挽救。 数据隐藏 通过对磁盘扇区数据的修改与数据加密,实现对私有数据的有效隐藏。,介绍哪些内容,恢复与隐藏技术解决的问题 理论基础 C读写物理扇区的方法 数据恢复应用开发流程 安全删除和彻底格式化的方法,恢复与隐藏技术解决的问题,恢复解决的问题,隐藏解决的问题,找回误操作造成的数据丢失 计算机取证 其他,敏感数据保护 网络攻击中隐藏木马等 其他,理论基础,以FAT32为例 FAT32文件系统中三个主要的数据结构 几个重要的计算公式 数据恢复技术原理

2、数据隐藏技术原理,理论基础 FAT32,FAT32(File Allocation Table 32)是Microsoft公司开发研制的目前最流行的文件系统之一,之前的FAT16及FAT12与之机制类似。 Microsoft推出的另一种文件系统NTFS(New Technology File System)虽然较FAT更复杂,主要加入了有关容错性、安全性、文件压缩、磁盘配额等新特性等,但从数据恢复的角度而言基本原理相同。 原理对于在UNIX / LINUX操作系统下使用的文件系统也具指导意义。,理论基础 FAT32几个名词,FAT:File Allocation Table,文件分配表,有FA

3、T12、FAT16和FAT32三类。 簇:文件系统为数据写入磁盘时分配的最小存储单位。簇由一个或多个扇区组成。 1一个文件即使只有一个字节大小,也要占用一个簇的空间。 卷:逻辑上的分区标识。(不是物理上的),理论基础 FAT32(续),每个FAT卷均由三个基本区域组成 0 启动扇区,即0扇区 1 FAT区,文件分配表区域 2 数据区0扇区、FAT表(存在于FAT区)和FAT目录结构(存在于数据区中)是FAT文件系统三个最主要的数据结构。,理论基础 FAT32(续) 0扇区,0扇区是FAT卷的第一个扇区,也称“启动扇区”。 保存着FAT文件系统的第一个重要的数据结构BPB(BIOS Parame

4、ter Block)。 BPB中保存着该FAT卷的各种关键信息,0扇区物理数据,0扇区结构表,0扇区结构表(续),理论基础 FAT32(续) FAT表,FAT表是对应于数据区簇号号码的列表 表项的大小与FAT的类型有关。FAT32用32-bit来表示一个表项,因此被称为FAT32。 相应的,FAT16使用16-bit表示一个表项,FAT12为12-bit。 FAT表提供了链式存储机制,这使得文件并不需要存放在磁盘的连续簇中。,理论基础 FAT32(续) FAT表,FAT表的表项需要完成以下几项功能:准确记录磁盘中已经被文件占用了的簇。 为每个已被占用的簇指明后继簇。 能够指明某簇是文件的最后一

5、簇,即没有后继簇。 能指明簇已损坏。,为了完成上述功能,FAT表的每一个表项记录的内容为该簇后继簇的簇号。如果该簇没有后继簇,则将值设为0xFFFFFF0F。,理论基础 FAT32(续) FAT表,FAT表数据,FAT表表项示例,理论基础 FAT32(续) FAT表,FAT表中项的总数与磁盘卷的总簇数有关,簇越多项数也越多。 只要为一个文件指明了开始簇,就能够借助FAT表找到保存此文件数据的所有簇。 FAT32对目录(文件夹)和文件作相同看待,除属性外没有区别。 由前表可知,数据区从第二簇开始。,理论基础 FAT32(续) FAT表,第5簇在FAT32表项中表示成0x 05 00 00 00

6、为什么不是0x 00 00 00 05? FAT32使用little-endian(小端)结构存储数据。 对应则有Big-endian结构。 比如:存储数据为0x 05 04 03 02,计算对应的10进制: Little-endian: 02 * 0x 01 00 00 00 + 03 * 0x 01 00 00 + 04 * 0x 01 00 + 05 Big-endian: 05 * 0x 01 00 00 00 + 04 * 0x 01 00 00 + 03 * 0x 01 00 + 02,理论基础 FAT32 目录结构,目录项分为长目录项和短目录项。 任意一个文件(或文件夹)在磁盘上

7、均保存有自己对应的32位字节的目录项。 一个文件可以没有长目录项(如果主文件名长度小于8),但不能没有短目录项。 从数据恢复的角度出发,只需考虑短目录项,因为它已经包含了对应文件除长文件名之外的所有信息。,理论基础 FAT32 目录结构(续),Readme.txt、Test.txt、Mydir文件夹的目录结构,理论基础 FAT32 目录结构(续),FAT32对目录(文件夹)和文件作相同看待,除属性外没有区别。 对于长文件名文件,文件系统除了要保存其长文件名信息外,还生成对应的短文件名目录项,并用短目录项保存该文件的各种关键信息。,理论基础 FAT32 目录结构(续),上表各项中,有4个变量对数

8、据恢复技术最为重要,它们描述了3部分信息。 DIR_Name DIR_FstClusHI 和 DIR_FstClusLO DIR_FileSize,理论基础 FAT32 目录结构(续),DIR_Name DIR_Name用于记录文件的名称。 它由8个字符的主文件名和3个字符的扩展名共同组成。主文件名位数不足时填充0x20。 例如:某文件名为“test.pl”,在目录项中文件名的保存应为:54 45 53 54 20 20 20 20 50 4C 20。 DIR_Name0如果为0xE5,表示此目录项为空(即目录项不包含任何文件或文件夹)。,理论基础 FAT32 目录结构(续),DIR_FstC

9、lusHI和DIR_FstClusLO DIR_FstClusHI和DIR_FstClusLO共同指明了该文件在磁盘卷中的起始簇。 有了起始簇,即可通过查询FAT表确定该簇的后继簇,进而找到文件数据存放的所有簇的簇号。 例如,某目录项中,DIR_FstClusHI = 0x E0 82,DIR_FstClusLO = 0x 4F 00,则它的开始簇计算应当是:0x00 0x01000000 +0x4F 0x010000 +0x82 0x0100 +0xE0,理论基础 FAT32 目录结构(续),DIR_FileSize 文件大小是文件占用簇总簇数的重要参考。如果FAT表被损坏,则无法知道某文件

10、的簇链信息,文件大小将作为恢复操作结束的唯一依据。,理论基础 FAT32 目录结构(续),理论基础 FAT32几个重要公式,公式一、计算数据的起始扇区FirstDataSector: 定义RootDirSectors为根目录(磁盘卷的目录项入口)所占的扇区总数。 这里扇区号是针对卷中包含BPB的第一个扇区的偏移量,因为包含BPB的第一个扇区是0扇区。但它并不和磁盘的物理扇区相对应,因为物理0扇区并不一定就是卷的0扇区。,RootDirSectors =(BPB_RootEntCnt * 32)+(BPB_BytsPerSec 1) / BPB_BytsPerSec; FirstDataSect

11、or = BPB_RsvdSecCnt+BPB_NumFATs*BPB_FATSz32)+ RootDirSectors;,理论基础 FAT32几个重要公式,公式二、给定一个合法簇号N,计算该簇的第一个扇区号: 公式三、给定一个合法簇号N,计算它在FAT表的位置:,FirstSectorofCluster = (N 2 )* BPB_SecPerClus)+ FirstDataSector;,FATOffset = N * 4; ThisFATSecNum = BPB_RsvdSecCnt + (FATOffset / BPB_BytsPerSec); ThisFATEntOffset = F

12、ATOffset BPB_BytsPerSec;,理论基础 FAT32数据恢复原理,操作系统的删除操作仅仅是为被删除文件做了删除标记,即将目录项的首位(DIR_Name0)标记为0xE5。 删除操作完成后FAT表并没有被重新分配,分配和更新将在写入操作出现时进行。 删除操作并没有将实际的数据区清零。 对于FORMAT操作而言,仅仅是将FAT表清零,表明该卷所有的簇可用,而未对数据区的数据清零。 如果连续空间足够用,文件管理系统默认为写入的文件连续分配空间。,理论基础 FAT32数据恢复原理,执行删除(包括格式化)操作后,文件的实际数据在没有被新数据覆盖前依然存在。 借助读取扇区物理数据的方法可

13、以将数据找回。 文件系统的做法对操作系统来说是没有问题的,它不仅完成了应执行的操作,同时保证了操作具有较高的效率 。,理论基础 FAT32数据隐藏原理,将还未分配簇标记成坏簇,使用这些簇实现数据隐藏。 一个文件如果大小不是簇大小的整数倍,该文件占用的最后一簇中,将浪费一部分空间。这部分空间可以用来隐藏数据。 掌握了物理读写磁盘簇数据的方法,实现上述应用没有问题。,C读写物理扇区的方法,Windows NT操作系统以后,Windows允许应用程序使用CreateFile API函数打开一个磁盘设备或者磁盘卷。 使用时只需在函数的lpFileName参数中指明磁盘卷的名称即可。 名称的书写格式为“

14、.PHYSICALDRIVEx”。 例如,应用程序希望打磁盘的D卷,输入格式为“.D:”。 成功打开磁盘卷后,即可象访问普通文件一样使用ReadFile、WriteFile和SetFilePointer等函数进行相应的操作。,C读写物理扇区的方法示例,HANDLE hCD;DWORD dwNotUsed;hCD = CreateFile (“.D:“, GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,NULL);if (hCD != INVALID_HANDLE_V

15、ALUE)LPBYTE lpSector;lpSector = (unsigned char *)VirtualAlloc (NULL, 512,MEM_COMMIT|MEM_RESERVE,PAGE_READWRITE);SetFilePointer (hCD, 0,NULL, FILE_BEGIN);ReadFile(hCD, lpSector, 512, ,读取D:卷0扇区512字节,写扇区方法与此类似,数据恢复应用开发流程,区别对待删除文件的两种操作方法 对目标文件直接删除(文件被标记) 删除文件夹,文件夹下所有文件均被删除(仅标记了文件夹) 流程用伪代码描述,主要函数有3个: 列举目

16、录内容(数据区开始簇) 恢复文件(文件的开始簇,文件的大小,文件名) 列举并恢复已删除目录(开始簇),数据恢复应用开发流程(续),列举目录内容(数据区开始簇) /每32字节识别一次for(int I = 0;I BPB_BytsPerSector * BPB_SecPerClus; I += 32)if(找到一个目录)列举目录内容(该目录的开始簇);if(找到一个已删除文件)恢复文件(文件的开始簇,文件的大小,文件名);if(找到一个已删除目录)列举并恢复已删除目录(此目录开始簇);if(查询FAT表,当前列举的簇不是根目录的最后一簇)列举目录内容(FAT表中指明的当前簇的下一簇); ,数据恢复应用开发流程(续),恢复文件(文件的开始簇,文件的大小,文件名) if(文件大小 = BPB_BytsPerSector * BPB_SecPerClus)读数据并保存到指定位置(文件开始簇,文件名,文件大小);eleswhile(查询FAT表,当前簇不是文件的最后一簇)读数据并保存到指定位置(当前簇,文件名,BPB_BytsPerSector * BPB_SecPerClus);当前簇 = FAT表指明的后继簇;数据并保存到指定位置(当前簇,文件名,文件大小 % (BPB_BytsPerSector * BPB_SecPerClus); ,

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号