Master Boot Record (MBR)
-
else if ( ( ((*((uint8_t*)addr)) == 0x00) || ((*((uint8_t*)addr)) == 0xEB) || ((*((uint8_t*)addr)) == 0xFA) || ((*((uint8_t*)addr)) == 0x33) ) && ((*((uint16_t*)((uint8_t*)addr+444))) == 0x0000) )
Das ist der Anfang der Erkennung von MBR. Die Frage ist aber: wie kann man einen Master Boot Record sicher erkennen? Wir wissen bereits, dass in 510/511 55AAh steht. Reicht der Check der Doppel-Null an 444 und die 55AA an 510/511?
0xEB habe ich hinzu gefügt wegen http://de.wikipedia.org/wiki/Partitionstabelle, und die 0x00 haben wir bei Cuervo gesehen.
Was erzeugt “fdisk /mbr” bzw. “fixmbr” an byte0?
-
Es gibt von Microsoft ein Dokument: FAT32 File System Specification.
Man muss hier ein "License agreement" akzeptieren:
http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx
und dann kommt man auf eine Seite, wo man ganz rechts im Kleingedruckten, damit man es leicht übersieht, eine doc-Datei herunterladen kann.
Ich kann die Datei grad nicht öffnen, aber ich erinnere mich, dort werden alle Strukturen genau beschrieben, auch die von Boot Sector. Vielleicht hilft es weiter...