1.44MB 软盘镜像文件FDT/FAT简析

准备:
1、一张干净的1.44MB软盘,使用windows98附带的Dos进行完全格式化;
2、使用sys命令向磁盘传送系统文件;
3、立刻将磁盘做成镜像(保证磁盘的“干净”)。

 

 

FAT12的结构网上有很多,这里不进行累述。
下面是针对镜像文件进行的数据分析(下面提到的地址范围只指用UE等打开之后看到的地址)。

 

 

0面0道第2扇区到第10扇区的9个扇区是FAT表的存放位置

FAT地址范围:0x0200 ~ 0x13FF

0面0道的第11扇区到1面0道第1扇区的9个扇区是第2个FAT表的存放位置,这第2个FAT是备用的
备份FAT地址范围:0x1400 ~ 0x25FF

1面0道的第2扇区起到1面0道的第15扇区(共14个扇区)用于存放 FDT。
FDT起始地址:0x2600 ~ 0x41FF

 

以IO.SYS为例:
0x2600~0x260A :文件名
0x260B:07:只读、隐藏的系统文件
0x260C~0x2615:保留
0x2616~0x2617:20A0=0xA020(10100 000001 00000):文件最后修改时间20:01:00
0x2618~0x2619:D324=0x24D3(0010010 0110 10011):文件最后修改日期1998/06/19
0x261A~0x261B:0200:文件首簇号002,其他附后
0x261C~0x261F:966B0300=0x00036B96:文件的长度224150Byte

 

文件簇号分析:
其中,簇号0x002可知:
逻辑扇区号 = 0x002+31 = 33
因此,IO.SYS文件的存储起始位置为:逻辑扇区号 * 512 = 0x04200
文件首簇号002指向的位置为:0x200+(0x002*3/2)=0x200+3=0x203+0(簇号从0x203开始)。
因为0能被3整除(姑且这样认为),因此,簇号002指向的位置为0x203+0=0x203的位置。
0x203位置的数据为034000=0x004003,即第二簇为003


以MSDOS.SYS为例:
文件首簇号0x23F,可知:
逻辑扇区号 = 0x23F+31 = 606
因此,MSDOS.SYS文件的存储起始位置为:逻辑扇区号 * 512 = 0x4BC00
文件首簇号23F指向的位置为:0x200+(0x23F*3/2)=0x200+862.5=0x203+859.5。
因为858能被3整除,因此,簇号23F指向的位置为0x203+858=0x55D后面的1.5个位置。
0x55D位置的数据为FFFFFF=0xFFFFFF,因此簇号23F指向的内容为高12bit的0xFFF。
即MSDOS.SYS的第一簇为文件的最后一簇。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值