FAT32 分析 2
hexdump
IMG_SIZ = 64M
first_data_sector = 0x100400 / 512 = 0x802
| │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
| │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
| │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 │⋄⋄⋄⋄⋄⋄⋄⋄┊⋄⋄⋄⋄⋄⋄⋄⋄│
|
| 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
| │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 , 甚至是完全一样的文件复制过去