
Местный
  
Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596

|
В файловой системе основной единицей является кластер. Кластер состоит из секторов, а сектор имеет длину в N байт. Файл записанный на диск занимает какое-то ЦЕЛОЕ кол-во кластеров.
В фат все значения идут младшим вперёд
На диске в начале идёт сектор который называют "boot сектор", "reserved sector" или "0th sector," но главное лишь то, что это первый сектор на диске.
Смещение от начала диска в блоках на ??? это 4-х байтовое значение в нулевом секторе, начиная с позиции 1C6h.
1) Вычислить место нахождение ??? считав НУЛЕВОЙ блок и обработав 4 байта начиная со смещения 1C6h
загрузочная запись раздела начинается с = 00 00 00 20 ------------------------------------------------------------------------------------- Пример: 01С0 01,00,04,01,E0,D4,20,00,00,00,DF,F4,00,00,00,00 ^^1bayt -------------------------------------------------------------------------------------
2) Считать этот блок
3) Выделить 2 байта по смещению 0Bh Количество байтов в секторе = 07 00 ------------------------------------------------------------------------------------- Пример: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0000 F8,FF,FF,FF,03,00,04,00,05,00,06,00,07,00,08,00 ^^1bayt -------------------------------------------------------------------------------------
4) Выделить 2 байта по смещению 0Eh Количество зарезервированных секторов = 00 08 ------------------------------------------------------------------------------------- Пример: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0000 F8,FF,FF,FF,03,00,04,00,05,00,06,00,07,00,08,00 ^^1bayt -------------------------------------------------------------------------------------
5) Выделить 1 байт по смещению 10h Количество копий FAT = 02 ------------------------------------------------------------------------------------- Пример: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0010 02,00,02,DF,F4,F8,F3,00,3F,00,FF,00,20,00,00,00 ^^1bayt -------------------------------------------------------------------------------------
6) Выделить 2 байта по смещению 11h Количество возможных записей в корневом каталоге = 02 00 ------------------------------------------------------------------------------------- Пример: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0010 02,00,02,DF,F4,F8,F3,00,3F,00,FF,00,20,00,00,00 ^^1bayt -------------------------------------------------------------------------------------
7) Выделить 2 байта по смещению 16h Секторов на FAT = 00 F3 ------------------------------------------------------------------------------------- Пример: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0010 02,00,02,DF,F4,F8,F3,00,3F,00,FF,00,20,00,00,00 ^^1bayt -------------------------------------------------------------------------------------
Записи FAT = загрузочная запись раздела + 0Eh (2 байта) = 20 + 08 = 28h
Записи каталога = записи FAT + (16h (2 байта) * 10h (1 байт)) = 28h + F3*2 = 20Eh
Область данных (кластер 0) = записи каталога + (11h (2 байта)*32/512) в загрузочной записи раздела = 20E + 200h*32/512 = 20E + 32d = 22E
А начало в 228
В байтах 04 50 00 h в блоках 02 28 h
Blok 0200 > Adres00000000
00A0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 00B0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 00C0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 00D0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 00E0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 00F0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0100 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0110 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0120 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0130 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0140 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0150 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0160 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0170 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0180 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0190 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 01A0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 01B0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 01C0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 01D0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 01E0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 01F0 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0200 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0210 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0220 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0230 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0240 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0250 00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,01 [#128] 0260 01,00,04,01,E0,D4,20,00,00,00,DF,F4,00,00,00,00 0270 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0280 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 0290 00,00,00,00,00,00,00,00,00,00,00,00,00,00,55,AA U[#170]
> OK.
>>>>>>>>>>> > Blok 0200 > Adres00004000
00A0 EB,3C,90,4D,53,44,4F,53,35,2E,30,00,02,01,02,00 <[#144]MSDOS5.0 00B0 02,00,02,DF,F4,F8,F3,00,3F,00,FF,00,20,00,00,00 ? 00C0 00,00,00,00,00,00,29,4B,C8,5F,F0,4E,4F,20,4E,41 )K _ NO NA 00D0 4D,45,20,20,20,20,46,41,54,31,36,20,20,20,33,C9 ME FAT16 3 00E0 8E,D1,BC,F0,7B,8E,D9,B8,00,20,8E,C0,FC,BD,00,7C [#142] [#188] {[#142] [#142] [#189]| 00F0 38,4E,24,7D,24,8B,C1,99,E8,3C,01,72,1C,83,EB,3A 8N$}$[#139] [#153] <r[#131] : 0100 66,A1,1C,7C,26,66,3B,07,26,8A,57,FC,75,06,80,CA f[#161]|&f;&[#138]W u[#128] 0110 02,88,56,02,80,C3,10,73,EB,33,C9,8A,46,10,98,F7 [#136]V[#128] s 3 [#138]F[#152] 0120 66,16,03,46,1C,13,56,1E,03,46,0E,13,D1,8B,76,11 fFVF [#139]v 0130 60,89,46,FC,89,56,FE,B8,20,00,F7,E6,8B,5E,0B,03 `[#137]F [#137]V [#139]^ 0140 C3,48,F7,F3,01,46,FC,11,4E,FE,61,BF,00,00,E8,E6 H F N a[#191] 0150 00,72,39,26,38,2D,74,17,60,B1,0B,BE,A1,7D,F3,A6 r9&8-t`[#177][#190][#161]} [#166] 0160 61,74,32,4E,74,09,83,C7,20,3B,FB,72,E6,EB,DC,A0 at2Nt[#131] ; r [#160] 0170 FB,7D,B4,7D,8B,F0,AC,98,40,74,0C,48,74,13,B4,0E }[#180]}[#139] [#172][#152]@tHt[#180] 0180 BB,07,00,CD,10,EB,EF,A0,FD,7D,EB,E6,A0,FC,7D,EB [#187] [#160] } [#160] } 0190 E1,CD,16,CD,19,26,8B,55,1A,52,B0,01,BB,00,00,E8 &[#139]UR[#176][#187] 01A0 3B,00,72,E8,5B,8A,56,24,BE,0B,7C,8B,FC,C7,46,F0 ;r [[#138]V$[#190]|[#139] F 01B0 3D,7D,C7,46,F4,29,7D,8C,D9,89,4E,F2,89,4E,F6,C6 =} F )}[#140] [#137]N [#137]N 01C0 06,96,7D,CB,EA,03,00,00,20,0F,B6,C8,66,8B,46,F8 [#150]} [#182] f[#139]F 01D0 66,03,46,1C,66,8B,D0,66,C1,EA,10,EB,5E,0F,B6,C8 fFf[#139] f ^[#182] 01E0 4A,4A,8A,46,0D,32,E4,F7,E2,03,46,FC,13,56,FE,EB JJ[#138]F2 F V 01F0 4A,52,50,06,53,6A,01,6A,10,91,8B,46,18,96,92,33 JRPSjj[#145][#139]F[#150][#146]3 0200 D2,F7,F6,91,F7,F6,42,87,CA,F7,76,1A,8A,F2,8A,E8 [#145] B[#135] v[#138] [#138] 0210 C0,CC,02,0A,CC,B8,01,02,80,7E,02,0E,75,04,B4,42 [#128]~u[#180]B 0220 8B,F4,8A,56,24,CD,13,61,61,72,0B,40,75,01,42,03 [#139] [#138]V$ aar@uB 0230 5E,0B,49,75,06,F8,C3,41,BB,00,00,60,66,6A,00,EB ^Iu A[#187]`fj 0240 B0,4E,54,4C,44,52,20,20,20,20,20,20,0D,0A,52,65 [#176]NTLDR Re 0250 6D,6F,76,65,20,64,69,73,6B,73,20,6F,72,20,6F,74 move disks or ot 0260 68,65,72,20,6D,65,64,69,61,2E,FF,0D,0A,44,69,73 her media. Dis 0270 6B,20,65,72,72,6F,72,FF,0D,0A,50,72,65,73,73,20 k error Press 0280 61,6E,79,20,6B,65,79,20,74,6F,20,72,65,73,74,61 any key to resta 0290 72,74,0D,0A,00,00,00,00,00,00,00,AC,CB,D8,55,AA rt[#172] U[#170]
--------------------
|