Diferencia entre revisiones de «Anàlisi de FAT en Linux»

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Sin resumen de edición
Línea 24: Línea 24:




  0000000: <span style="color:#FFFFFF; background:#e88">eb3c 90</span>6d 6b64 6f73 6673 0000 0204 0100  .<.mkdosfs......
  0000000: <span style="color:#FFFFFF; background:#e88">eb3c 90</span><span style="color:#FFFFFF; background:#8e8">6d 6b64 6f73 6673 00</span><span style="color:#FFFFFF; background:#88e">00 02</span><span style="color:#FFFFFF; background:#888">04</span> <span style="color:#FFFFFF; background:#F99">0100</span> .<.mkdosfs......
  0000010: 0200 0200 08f8 0200 2000 4000 0000 0000  ........ .@.....
  0000010: <span style="color:#FFFFFF; background:#9F9">02</span>00 0200 08f8 0200 2000 4000 0000 0000  ........ .@.....
  0000020: 0000 0000 0000 293a a2a6 8020 2020 2020  ......):...     
  0000020: 0000 0000 0000 293a a2a6 8020 2020 2020  ......):...     
  0000030: 2020 2020 2020 4641 5431 3220 2020 0e1f        FAT12  ..
  0000030: 2020 2020 2020 4641 5431 3220 2020 0e1f        FAT12  ..
Línea 62: Línea 62:


Observem el significat de alguns dels camps:
Observem el significat de alguns dels camps:
* <span style="color:#FFFFFF; background:#e88">eb3c 90</span>: Es tracta d'una instrucció de salt válida per a un x86, serveix per a indicar que els pròxims 3c bytes no són executables.
* <span style="color:#FFFFFF; background:#8e8">6d 6b64 6f73 6673 00</span>: OEM ID, Es parte del BIOS Parameter Block (BPB)
* <span style="color:#FFFFFF; background:#88e">00 02</span>: Bytes per sector. Està en Little endian, per tant, és 0x0200 = 512
* <span style="color:#FFFFFF; background:#888">04</span>: Sectors per Cluster.
* <span style="color:#FFFFFF; background:#F99">0100</span>: Sectors reservats. També està en Little endian. 0x0001 = 1 sector reservat. Mínim ha de ser 1, ja que és el del sector de arranc.
* <span style="color:#FFFFFF; background:#9F9">02</span>: Número de FATs. És el nombre de cópies de la FAT, normalment és 2.






http://www.beginningtoseethelight.org/fat16/index.htm
http://www.beginningtoseethelight.org/fat16/index.htm

Revisión del 10:29 3 jun 2013

Podem crear una imatge de FAT amb:

$ dd if=/dev/zero of=disc.img bs=512 count=2048

Si volem, podem utilitzar el urandom per donar un aspecte més realista amb un disc que té dades previament:

$ dd if=/dev/urandom of=disc.img bs=512 count=2048

Després, li donem format. Com per a Linux, tot es un fitxer, pots formatejar un fitxer igual que un disc:

$ mkfs.vfat disc.img

Per a muntar-lo:

$ sudo mount -oloop ./disc.img ./imgs/

A partir de ací, podem analitzar el contingut amb xxd en hexadecimal. També podem utilitzar la comanda fsstat del paquet sleuthkit:

$ sudo apt-get install sleuthkit
$ fsstat disc.img


Si analitzem la primera part:


0000000: eb3c 906d 6b64 6f73 6673 0000 0204 0100  .<.mkdosfs......
0000010: 0200 0200 08f8 0200 2000 4000 0000 0000  ........ .@.....
0000020: 0000 0000 0000 293a a2a6 8020 2020 2020  ......):...     
0000030: 2020 2020 2020 4641 5431 3220 2020 0e1f        FAT12   ..
0000040: be5b 7cac 22c0 740b 56b4 0ebb 0700 cd10  .[|.".t.V.......
0000050: 5eeb f032 e4cd 16cd 19eb fe54 6869 7320  ^..2.......This 
0000060: 6973 206e 6f74 2061 2062 6f6f 7461 626c  is not a bootabl
0000070: 6520 6469 736b 2e20 2050 6c65 6173 6520  e disk.  Please 
0000080: 696e 7365 7274 2061 2062 6f6f 7461 626c  insert a bootabl
0000090: 6520 666c 6f70 7079 2061 6e64 0d0a 7072  e floppy and..pr
00000a0: 6573 7320 616e 7920 6b65 7920 746f 2074  ess any key to t
00000b0: 7279 2061 6761 696e 202e 2e2e 200d 0a00  ry again ... ...
00000c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000100: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000110: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000120: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000130: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000150: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000160: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000170: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000180: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000190: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001f0: 0000 0000 0000 0000 0000 0000 0000 55aa  ..............U.
0000200: f8ff ff00 f0ff ffff ffff 0f00 0000 0000  ................


Aquest és el boot record de la partició que hem creat. (L'última línia no és del boot record).

Observem el significat de alguns dels camps:

  • eb3c 90: Es tracta d'una instrucció de salt válida per a un x86, serveix per a indicar que els pròxims 3c bytes no són executables.
  • 6d 6b64 6f73 6673 00: OEM ID, Es parte del BIOS Parameter Block (BPB)
  • 00 02: Bytes per sector. Està en Little endian, per tant, és 0x0200 = 512
  • 04: Sectors per Cluster.
  • 0100: Sectors reservats. També està en Little endian. 0x0001 = 1 sector reservat. Mínim ha de ser 1, ja que és el del sector de arranc.
  • 02: Número de FATs. És el nombre de cópies de la FAT, normalment és 2.



http://www.beginningtoseethelight.org/fat16/index.htm