第一次软件安全实验课,收获了很多。 先总结一下
研究磁盘的构造
可以看到最上面是三个分区项。
用winhex打开磁盘这三个分区项是与底下的分区表记录是对照的。
这是计算扩展分区有多少个扇区构成 计算扩展分区共有多大注意在计算的时候要切换成科学
如果是在程序员中去计算就会出现舍入的问题
其中07是NTFS分区, 0B是FAT32分区, 0F是扩展分区的意思
这是实验室虚拟机电脑的磁盘结构我们可以通过磁盘的分区记录直接计算出各个分区的大小。
如图其实很清楚的看出D盘式C盘的一半,而G盘和F盘之前已经计算过了, 大小大概就是23GB。
扩展分区
我们看到0F标记的分区记录项就是扩展分区, 它的开始位置就是 04 80 00 3FH
扩展分区的开始位置这就说明扩展分区开始前共有75497535个扇区。
Ctrl + G 转到某个扇区, 这里是 75497535个扇区
ctrl+G 扩展分区的记录这里是G盘和H盘的分区记录了
H盘的大小是:
H盘计算大小 H盘计算大小
H盘是13个GB多一点
FAT32文件系统
打开F盘需要注意这里我们是从菜单栏中的工具去打开F这个逻辑磁盘, 而不是通过打开物理磁盘然后点击第二个分区表进入。
第一行偏移 0DH 处 20 代表每一个簇的大小是 16KB
然后剩余空间是 6GB
A= 6*1024*1024 / 16 个簇, 然后计算FAT1的大小, A*4/1024/1024, 相当于 6*4/16 = 1.5MB
需要注意的是每个分区中一个簇所占用的扇区数目不是固定的, 具体的要看分区是怎么约定的
看到了TEST.TXT文件这里可以看除很多的信息, 比如:
00 00 00 0B 是首簇
00 01 28 7C 是文件的大小
看到了簇链
文件究竟占用了多少个簇是可以计算出来的。
因为这个逻辑磁盘是一个簇16KB, 所以60KB左右的文件大概是占用了5个簇。
所以这里是74KB多, 自然就是占用了5个簇了
补充一下
20H
也就是 一个簇32个扇区, 然后16KB大小(每个簇)
我们在恢复文件的时候一般要估计出这个文件占用了多少个簇, 然后才能开始恢复
之后就是一个恢复一个学号命名文件的实验了。 步骤都差不多,就不用写了
一些疑惑
-
FAT32 对于8.3的文件名是直接存储在目录项中的
然而对于不是文件名稍微长一点的呢?? -
NTFS文件系统又是如何组织的呢。为什么说NTFS文件系统会比FAT32文件系统更好呢??
分析自己的U盘
U盘这个U盘很神奇, 在分区之前居然有 0x 00 00 08 00 个扇区。。
然后总大小是 0x 03 9D 78 00
正好是这个数字
模板从分区模板中也可以看到在parition1 之前是有 2048个扇区的
根目录项这里再解释一下DBR和MBR之间的区别
MBR记录的是主引导记录
DBR是在每个分区开始的第一个扇区所记录的内容
网友评论