软件安全第一次实验

第一次软件安全实验课,收获了很多。 先总结一下

研究磁盘的构造

可以看到最上面是三个分区项。

用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是在每个分区开始的第一个扇区所记录的内容

磁盘分区示意图
GPT分区

分析自己的磁盘

LBA0
LBA1

参考资料

MBR、EBR、DBR是什么
MBR、EBR与DBR详解

你可能感兴趣的:(软件安全第一次实验)