Skip to content

FAT32 分析 2

hexdump

IMG_SIZ = 64M

first_data_sector = 0x100400 / 512 = 0x802

1
2
3
4
5
6
7
8
│00100400│ 45 46 49 20 20 20 20 20 ┊ 20 20 20 10 00 95 86 2d │EFI     ┊   •⋄××-│
│00100410│ 8b 58 8b 58 00 00 86 2d ┊ 8b 58 03 00 00 00 00 00 │×X×X⋄⋄×-┊×X•⋄⋄⋄⋄⋄│
│00100420│ 41 53 43 31 36 20 20 20 ┊ 20 20 20 20 00 97 86 2d │ASC16   ┊    ⋄××-│
│00100430│ 8b 58 8b 58 00 00 1d 44 ┊ 8b 58 06 11 01 10 00 00 │×X×X⋄⋄•D┊×X••••⋄⋄│
│00100440│ 41 43 00 6f 00 6e 00 66 ┊ 00 69 00 0f 00 e6 67 00 │AC⋄o⋄n⋄f┊⋄i⋄•⋄×g⋄│
│00100450│ 2e 00 69 00 6e 00 69 00 ┊ 00 00 00 00 ff ff ff ff │.⋄i⋄n⋄i⋄┊⋄⋄⋄⋄××××│
│00100460│ 43 4f 4e 46 49 47 20 20 ┊ 49 4e 49 20 00 97 86 2d │CONFIG  ┊INI ⋄××-│
│00100470│ 8b 58 8b 58 00 00 1d 44 ┊ 8b 58 0f 11 69 00 00 00 │×X×X⋄⋄•D┊×X••i⋄⋄⋄│

fat1 = 0x4000 / 512

1
2
3
│00004000│ f8 ff ff 0f ff ff ff 0f ┊ cd 06 00 00 ff ff ff 0f │××ו××ו┊ו⋄⋄××ו│
│00004010│ ff ff ff 0f 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │××ו⋄⋄⋄⋄┊⋄⋄⋄⋄⋄⋄⋄⋄│
│00004020│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄⋄⋄⋄⋄│

FAT表项的前两个FAT项为文件系统保留使用,0号FAT为介质类型,1号FAT为文件系统错误标志

next = ((0x06cd - 2) * 1 + 0x802) * 512 = 0x1d9a00

1
2
3
4
5
│001d9a00│ 41 4e 00 76 00 56 00 61 ┊ 00 72 00 0f 00 70 73 00 │AN⋄v⋄V⋄a┊⋄r⋄•⋄ps⋄│
│001d9a10│ 00 00 ff ff ff ff ff ff ┊ ff ff 00 00 ff ff ff ff │⋄⋄××××××┊××⋄⋄××××│
│001d9a20│ 4e 56 56 41 52 53 20 20 ┊ 20 20 20 20 00 00 8b 2d │NVVARS  ┊    ⋄⋄×-│
│001d9a30│ 8b 58 8b 58 00 00 91 43 ┊ 8b 58 ce 06 0e 07 00 00 │×X×X⋄⋄×C┊×Xו••⋄⋄│
│001d9a40│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄⋄⋄⋄⋄│
1
2
3
make -C Src diskmu
ls Src/Image
make -C Src diskmu
ASC16  Config.ini  EFI  Kernel.elf  NvVars  Sigma1.bmp  Sigma24.bmp  Sigma4.bmp  Sigma8.bmp  Sigma.bmp

next = 0x5b34

1
2
3
4
5
│00005b30│ 00 00 00 00 ff ff ff 0f ┊ 00 00 00 00 00 00 00 00 │⋄⋄⋄⋄××ו┊⋄⋄⋄⋄⋄⋄⋄⋄│
│00005b40│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄⋄⋄⋄⋄│
│*       │                         ┊                         │        ┊        │
│00007350│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 ef 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄⋄×⋄⋄│
│00007360│ 00 00 00 00 00 00 00 00 ┊ 00 00 00 00 00 00 00 00 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄⋄⋄⋄⋄│

踩大坑

Image.img 的每一次更改都改变了 FAT1 , 甚至是完全一样的文件复制过去