磁盘存储结构与文件恢复实验(FAT文件系统)

实验地点:主楼A2-412

一、实验室名称:主楼实验室A2-412                 

二、实验项目名称:磁盘存储结构与文件恢复实验

三、实验学时:6学时

四、实验原理:

在Debug环境下利用基本汇编程序对引导扇区、文件分配表、目录表等结构进行显示,并进行分析;

使用工具软件WINHEX对指定的文件(被删除文件)进行恢复。

五、实验目的:

1)了解文件系统在磁盘上的存储映像和它在系统安全中的地位和作用;

2)了解文件目录结构及其访问方式;

3)掌握使用系统基本汇编程序进行磁盘和文件结构访问的技术和编程方法,为数据恢复奠定基础。

六、实验内容:

1)在DEGUB下,使用汇编指令读取MBS引导扇区,记录并分析说明结构。

2)在DEGUB下,使用汇编指令读取DBS引导扇区,记录并分析说明结构。

3)在DEGUB下,使用汇编指令读取FAT、FDT,记录并分析说明结构。

4)生成一个简单文本文件(*.txt文件),结合FAT,FDT信息,使用汇编指令,在硬盘上查找并读出该文件,记录并说明查找过程。

5)删除生成的文本文件,查看该文件在FAT、FDT所对应的文件存储状态以及该文件在数据区对应扇区的内容,说明文件删除操作的原理。

6)使用WINHEX软件进行文件恢复操作练习。

七、实验器材(设备、元器件):

PC微机一台(至少具有一个FAT格式磁盘分区),VMware Workstation6.0虚拟机软件,DOS7.0,WINHEX软件。

八、实验步骤:

任务一、读取MBS引导扇区

1.在DEGUB下,使用汇编指令读取MBS引导扇区。

2.根据显示的信息,分析说明MBS结构及字节含义和具体数值。

任务二、读取DBS引导扇区和磁盘参数块BPB

1.在DEGUB下,使用汇编指令读取DBS引导扇区。

2.根据显示信息,分析说明引导扇区结构。

3.根据显示信息说明磁盘参数块BPB结构及各段含义和具体数值。

任务三、读取FAT表

1.生成一个简单文本文件(*.txt文件),取“长文件名”。

2.在DEGUB下,使用汇编指令读取FAT表。

3.根据显示信息,说明FAT的作用与格式。

 

任务四、查找文件

1.以“任务三”所生成的文本文件(*.txt文件)为目标,根据FDT查找该文件。

2.根据BPB中的信息,计算FDT位置。

3.编写代码显示FDT。

4.根据FDT信息,确定文件首簇号,根据公式计算目标文件起始扇区位置。

5.编写代码读取该文件对应的扇区,查看扇区存储的文件内容。

任务五、文件删除原理

1.删除生成的文本文件

2.查看FDT,检查已删除文件在FDT中所对应的状态信息的变化。

3.查看FAT,检查已删除文件在FAT中所对应的状态信息的变化。

4.查看已删除文件在数据区扇区中的内容,理解文件删除原理。

任务六、文件恢复

1.在FAT16(32)格式的磁盘中,使用WINHEX进行文件恢复操作练习。

九、实验数据及结果分析:

任务一:读取MBS引导扇区

1.给出编写的完整DEBUG指令,记录(拷贝屏幕输出)读出的MBS引导扇区内容,并对其进行结构分析和说明。

以上就是代码以及mbs全部内容,1000-11b7为引导程序,11b8-11bb为磁盘签名,11bc-11bd默认为0,11be-11fd为分区表,四个表项,每个16字节。这个例子里只有一个分区,开头一字节为80,表示主活动分区。最后两字节为结束标志。

2.计算当前磁盘空间大小。

当前磁盘空间为保留扇区(包括MBR)加上所有分区大小,这里保留扇区为3f,分区大小看最后4字节(11ca-11cd),即03bf85,总共为03bfc4*0200字节。

任务二:读取DBS引导扇区

1.给出编写完整DEBUG指令,记录(拷贝屏幕输出)读出的DBS引导扇区内容,并对其进行结构分析和说明。

以上为代码及dbr所有内容,1000-1001为跳转指令,1002为nop,1003-100a为OEM代号,100b-103d为bpb,103e-11fd为引导程序,最后两字节为结束标志。

2.说明和计算磁盘参数块BPB的结构及各段含义和具体数值。

每扇区字节数0200(100b-100c),每簇扇区数4(100d),DBR保留扇区数1(100e-100f),FAT个数2(1010),根目录最大目录项数0200(1011-1012),扇区总数0(1013-1014),介质描述符f8(1015),每FAT扇区数0f0(1016-1018),每磁道扇区数3f(1018-1019),磁头数4(101a-101b),隐藏扇区数3f(101c-101f),扇区总数3bf85(1020-1023),BIOS驱动器号80(1024),1025未用,扩展引导标记29(1026),卷序列号2f2f1ceb(1027-102a),卷标202020303137534f44534d(102b-1035),文件系统类型fat16(1036-103d)。

任务三:读取FAT表

给出编写完整DEBUG指令,记录(拷贝屏幕输出)读出的FAT表内容,并说明FAT的作用与格式。

以上为代码和fat1。每个fat项占2字节:0号描述介质类型,f8表示为硬盘;1号为肮脏标志;2号起没两个字节为1fat项:fff7表示坏簇,ffff表示某文件最后一个簇,00表示可用簇,其他表示某文件的下一个簇的簇号。

任务四:查找文件

记录并说明对文本文件进行查找的过程,以及每步产生的结果与分析。

1.根据BPB中的信息,计算FDT位置。

2.编写代码显示FDT,观察长文件名的显示格式,并记录目标文件的首簇号。

3.根据公式计算目标文件起始扇区位置。

4.读取文件在数据区扇区中的内容并记录。

这里分别实验了fat16和fat32:

Fat16:

根据bpb,每fat表占0f0字节,保留扇区为1,则fdt的起始扇区为1+0f0*2=1e1.

以上为fdt内容,个人觉得用l命令简单得多,上面的a代码还要涉及每磁道扇区数等等,下面用l实现相同的功能:

我用的fat16不支持长文件名,所以后面又用fat32重新做了一遍,这里也可以读取文件内容。如1e1(fdt)+20h+4=205h,即fdt起始扇区+fdt大小+(3-2)*每簇扇区数。文件首簇可以从目录项倒数第6字节和第5字节看到。

下面说fat32:

原理基本跟fat16类似:

这里需要说的是bpb肯定不一样,fat表项为4字节,我们现在主要目的是看长文件名,就不赘余了。

上面的是部分根目录项,其他的被我省了。这里看文件LIHUAN~1.TXT,创建长文件名时,也会创建个短文件名,前6字节+~1构成短文件名,另一个长文件名需要多个目录项时,其倒序排列在短文件名目录项之前。现在查找其内容:由于fat32把根目录放在数据区,故而文件位置在:20(保留扇区数)+2*0ff7(fat大小,在1024-1027)+(08b5-2)*8=65a6:

任务五:文件删除原理

1.显示FDT,记录已删除文件在FDT中所对应的状态信息的变化。

2.显示FAT,记录已删除文件在FAT中所对应的状态信息的变化。

3.查看已删除文件在数据区扇区中的内容。

4.根据以上结果,说明文件删除原理。

由以上几个图片可以看出:fat表里对应fat项清0,fdt对应目录项近把第一字节修改为e5,文件内容并不修改。所谓删除,即把fat表项删除,fdt标示e5表示曾被占用,现已删除。

任务六:文件恢复

1.记录并说明使用WINHEX进行恢复操作的过程中所使用的主要磁盘参数。

主要用到的磁盘参数和前面dos里一样,根据bpb找fat,bpb里可以找到根目录首簇号,结合fat大小数量,找到根目录,查找文件首簇,定位,截取内容,粘贴到新文件里,搞定。

2.简要叙述使用WINHEX进行恢复操作的主要步骤。

下面用winhex处理下xp下一个磁盘fat32分区内容:

创建一个文件:

在winhex里看:

先彻底删除文件:

同前面dos原理,用winhex找到根目录:

再根据首簇3号找到内容(这里说一下,这里文件其实地址已修改,只是首簇号高位本就是0,清0看不到效果,低位不修改)。把文件内容截取出来保存在d盘一个新建文件下:

然后打开,和源文件内容一样,恢复成功。

十、实验结论:

充分了解了mbr,dbr,bpb,fat,fdt等结构,由于同时操作了fat16和fat32,可以看出各结构的异同,熟悉了长文件名的存储,并亲自恢复了一个文件,收获很多。

十一、总结及心得体会:

通过本实验,了解了文件是怎样存储在磁盘上的,通过什么途径和方法能够在磁盘上找到它们,对文件和数据的读写和删除在磁盘上会产生什么样的改变和结果,为下一步理解文件和数据的恢复奠定基础。掌握使用系统基本汇编程序(Debug汇编)进行磁盘和文件结构访问的技术和编程方法。

时间: 2024-07-30 10:10:05

磁盘存储结构与文件恢复实验(FAT文件系统)的相关文章

分区恢复和NTFS文件恢复试验

一.实验室名称:主楼实验室A2-412                  二.实验项目名称:分区恢复和NTFS文件恢复试验 三.实验学时:6学时 四.实验原理: 借助fdisk.diskgen软件对磁盘分区进行删除和恢复,使用工具软件WINHEX对指定的文件进行定位.分析,以及恢复. 五.实验目的: 1)掌握使用软件进行磁盘的分区恢复技术 2)了解NTFS文件系统在磁盘上的存储映像和它在系统安全中的地位和作用. 3)初步掌握NTFS的文件恢复技术 六.实验内容: n  磁盘分区恢复实验 1)在V

实验:模拟场景中误删除mysql数据库表,然后使用全备份以及二进制日志文件恢复操作

一.实验环境: 1.准备两台虚拟机,一台用于破坏数据库,一台用于还原,两台在同一个网络 2.两台最小化安装centos 7系统,并直接yum安装maraidb数据库 3.准备一个测试数据库文件,例如,hellodb_innodb.mysql 测试库里面最少有两个表. 二.实验步骤: 1.开启数据库的二进制日志功能 vim /etc/my.cnf[mysqld] 下面加入log-bin 表示开启二进制日志功能 2.完全备份 mysqldump -A -F --master-data=2 --sin

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean

source:http://www.cgsecurity.org/wiki/TestDisk_CN TestDisk 是一款开源软件,受GNU General Public License (GPL v2+)条款保护. TestDisk:http://www.cgsecurity.org/wiki/TestDisk_CN TestDisk 是一款强大 的免费数据恢复软件! 早期主要是设计用来在使用有缺陷的软件,病毒或人为误操作(如不小心删除分区表)导致的分区丢失后,帮助用户恢复丢失分区,或修复不

目录结构及文件基本操作

目录结构及文件基本操作 Linux 目录结构及文件基本操作 介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux 目录结构之前,你首先要清楚一点东西,那就是 Linux 的目录与 Windows 的目录的区别,或许对于一般操作上的感受来说没有多大不同,但从它们的实现机制来说是完全不同的. 一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关系上,以往的 Windows 一直是以存储介

Linux 基础入门----目录结构及文件基本操作

Linux 目录结构及文件基本操作 介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux 目录结构之前,你首先要清楚一点东西,那就是 Linux 的目录与 Windows 的目录的区别,或许对于一般操作上的感受来说没有多大不同,但从它们的实现机制来说是完全不同的. 一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关系上,以往的 Windows 一直是以存储介质为主的,主要以盘符(C

云服务器 ECS Linux 误删除文件恢复方法介绍

云服务器 ECS Linux 下,rm -rf  意味着一旦删除的文件是无法挽回的.但如果在没有文件覆盖操作的前提下,可以先尝试相关方式进行文件恢复. 本文对此进行简要说明. https://help.aliyun.com/knowledge_detail/41197.html?spm=5176.7841174.2.6.uqC1as 通过 extundelete 尝试数据恢复 说明: 下文以 CentOS 6.5 ext4 文件系统为实验环境,工具为 extundelete. 在实际线上恢复过程

文件恢复

在上班,我想找到一个同事Git安装包.因此,打开我的软件光盘(E菜)寻找,成绩:除了打开文件正在使用,无法承受外界已删除的目录,所有的都走了.全板,数十名G该文件说,它不翼而飞?这太诡异.我想通过查看删除日志,要了解一个特定的程序是否被删除,ED同事问. ?文件结构被破坏?文件是否能恢复?心惊胆战.终于,通过文件恢复工具 HA_EasyRecoveryPro 工具找回了我 30 多G的文件.太惊喜了! 1 解决过程 1.1 中病毒了 通过查看 E 盘的使用空间,仅仅使用了 几十 M,说明文件不是

RMAN异机恢复实验---转载

一.RMAN异机恢复实验 2011年3月23日00:44 1.环境介绍: 主机1: 操作系统 REDHAT5.5 IP地址 172.16.1.120 主机名 sigle 数据库版本 10.2.0.4 数据库名 orcl DBID 1305151947 catalog win_yjr catalog用户 sigle/sigle 主机2: 操作系统 REDHAT5.5 IP地址 172.16.1.121 主机名 clone_sigle 数据库版本 10.2.0.4     2.本次恢复实验目的: 主

FAT文件系统(U盘)

FAT文件系统分为四个部分 保留扇区(引导区) 最开始的位置,第一个保留扇区是引导区.包括基本的文件系统信息,比如它的类型和其它指向其它扇区的指针.通常包括操作系统启动调用代码.保留扇区的总数记录在引导扇区中的一个参数中. FAT区(文件分配表) 包含两份文件分配表,分区信息的映射表,指示簇是如何存储的. 根目录区 在根目录中存储文件和目录信息的目录表. 数据区域 实际文件和目录数据存储的区域.需要注意的是每隔簇只能被一个文件占有. 主引导记录(主引导扇区) MBR(master boot re