实验地点:主楼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表示可用簇,其他表示某文件的下一个簇的簇号。