一、工欲善其事
1. 准备工作
将一个U盘格式化为FAT32格式,在U盘内创建几个文件,最好是TXT文档,其中至少有一个是长文件(命名较长)。
2. 补充知识
短文件名表示
长文件名表示
**Note:**当一个文件名为长文件名时,会由几个长文件名表示法和一个缩略名的短文间名表示,并且其文件大小以及首簇号等信息存放在短文件内
二、开始解析
1. 查看U盘信息
保留扇区:2226
文件目录首簇号:2
FAT表大小 :15271
簇大小:8
2. 查看U盘DBR
FAT32分区上DBR中各部分划分位置对应表
偏移字节 | 字段长度/ B | 字段名 |
---|---|---|
0x00 | 3 | 跳转指令 |
0x03 | 8 | 厂商标志与OS版本号 |
0x0B | 53 | BPB |
0x40 | 26 | 扩展BPB |
0x5A | 420 | 引导程序代码 |
0x01FE | 2 | 有效结束标志 |
3. 查看FAT表1
跳转2226个扇区到FAT表1
4. 查看FAT表2
跳转15271个扇区到FAT表2
5. 查看文件目录表
再跳转15271个扇区到文件目录表
6. 文件解析
U盘根目录文件如下如所示
解析长文件
A Long Long Test Txt File.Txt
长文件的缩写名(短文件)看出文件首簇号为: 00 00 00 07
大小为00 00 40 BE =16574 Bytes
推测占的簇数为16574/4096 =4.04>4 故需要5个簇存放
目录表首簇号为2
从目录表跳转7-2=5个簇,即5 X 8=40个扇区到达文件位置:
在FAT表中找出簇号链:从FAT表跳转7 X 4 =28 bytes找到首簇号
得到簇号链 第七个簇内容为00 00 00 08,第八个簇内容是00 00 00 09——>00 00 00 0A——>00 00 00 0B——>FF FF FF 0F与之前推测相符合
Note:在FAT32系统中FAT表中每个簇占四个字节
文献参考:《计算机病毒与反病毒技术》2006-6-1清华大学出版社出版,作者:张仁斌,李钢,侯整风