FAT12中文件目录项时间、日期对应字节问题

时间:2023-01-11 17:59:09

实验结论:

文件目录项中,

第25、26位表示日期:共16位,从高到低,7位表示年到80的偏移,4位表示月,5位表示日;

第23、24位表示时间:共16位,从高到低,5位表示小时到12:00a的偏移,6位表示分钟数,5位未探索(实验中该5位无作用)。


举个例子,

FAT12中文件目录项时间、日期对应字节问题

这里如果要把MUSIC目录的修改时间变为 1996年4月17日下午8:00 的话:

年数偏移为16,月数位4,日期为17。

对应(年)001 0000,(月)0100,(日)1 0001。即0010000010010001=2091H。因小端序:第25位为91,第26位为20。

小时偏移为20,分钟数为0

对应(时)1010 0,(分钟)000 000,(无用,该5位我将随意填充以体现实验结论)1 0110。即1010 0000 0001 0110=A016H。因小端序:第23位为16,第24位为A0。

修改对应文件目录项:

FAT12中文件目录项时间、日期对应字节问题

在VM中查看:

FAT12中文件目录项时间、日期对应字节问题

看到MUSIC目录得到预期改变。



/***************************************题外话**************************************************************************************/


没有找到直接的定义真的头大!自己换位思考猜着算我去 = =,从早上就搞研究到现在了,不想看书了,我要打游戏去了!c

应该是我对DOS理解不够深入,但是要做病毒原理课的实验...还没继续学习就开始做这些了..

还有一些小的心得体会:


该DOS环境下,文件目录项的时间项并不是用时间戳来表示;

两个文件目录项指向同一扇区是OK的(快捷方式的起源?);

文件目录项指向未分配簇的扇区也是OK的,但无法访问;

但是在指向未分配簇的文件目录中操作会GG;