Recupération de partitions IV : Identification d’une partition NTFS
Pour pouvoir récupérer une partition NTFS, il faut savoir l'identifier. Une partition NTFS contient essentiellement:
- Un secteur d'amorçage NTFS (NTFS BootSector) en début de partition
- Une MFT (la database de NTFS)
- Une copie alternative des 3 premiers enregistrements de cette MFT
- Un secteur de backup du NTFS Boot Sector en fin de partition
Pour une description complète de chacun des champs : https://technet.microsoft.com/fr-fr/library/cc781134(WS.10).aspx
Pour rappel, la table de partition 0 nous montrait une partition démarrant au secteur 2048 et occupant 122972160 :
Examinons en détails le NTFS Boot Sector
Si on dresse un tableau de ces données on obtient ça:
Byte Offset |
Field Length |
Sample Value |
Field Name |
0x00 |
3 bytes |
EB 52 90 |
Jump Instruction |
0x03 |
8 bytes |
NTFS |
OEM ID |
0x0B |
2 bytes |
00 02 (512) |
Bytes per sector |
0x0D |
1 byte |
08 |
Sectors per Cluster |
0x0E |
2 bytes |
00 00 |
Reserved Sectors |
0x10 |
3 bytes |
00 00 00 |
Must be 0 |
0x13 |
2 bytes |
00 00 |
Must be 0 |
0x15 |
1 byte |
F8 |
Media Descriptor |
0x16 |
2 bytes |
00 00 |
Must be 0 |
0x18 |
2 bytes |
3F 00 |
Not used |
0x1A |
2 bytes |
FF 00 |
Not used |
0x1C |
4 bytes |
00 08 00 00 (0x800 = 2048) |
Not used |
0x20 |
4 bytes |
00 00 00 00 |
Must be 0 |
0x24 |
4 bytes |
80 00 80 00 |
Not used |
0x28 |
8 bytes |
FF 67 54 07 00 00 00 00 (122972159) * |
Total Sectors |
0x30 |
8 bytes |
00 00 0C 00 00 00 00 00 (786432) |
Clusters to $MFT |
0x38 |
8 bytes |
02 00 00 00 00 00 00 00 (2) |
Clusters to $MFTMirr |
0x40 |
1 byte |
F6 (246) ** |
Clusters Per MFT Record |
0x41 |
3 bytes |
00 00 00 |
Not used |
0x44 |
1 byte |
01 |
Clusters Per Index Buffer |
0x45 |
3 bytes |
00 00 00 |
Not used |
0x48 |
8 bytes |
31 DD 45 AE 2B 46 AE FE |
Volume Serial Number |
0x50 |
4 bytes |
00 00 00 00 |
Not used |
* La table de partition présente au secteur 0 nous avait indiqué une partition occupant 122972160 secteurs. Ca fait un secteur de plus, car dans cette table, on compte le 1er secteur de la partition ainsi que le dernier. Dans le secteur d’amorçage NTFS on compte un secteur de moins. Il faudra s’en rappeler quand nous ferons des réparations.
** La taille de chaque enregistrement. NTFS fera un enregistrement pour chaque fichier et répertoire de son volume. Ceux dont la taille est inférieur à la taille d’un enregistrement sont résident dans la MFT. Si ce nombre est positif (entre 00 et 7F) alors il represente le nombre de cluster par enregistrement. Si le nombre est négatif (de 80 à FF), alors la taille d’un enregistrement est 2 à la puissance la valeur absolue de la valeur de ce champ.
- Dans notre exemple, nous pouvons lire la valeur 0xF6. C’est une valeur négative, et sa valeur absolue est 0x0A (10 en décimal). Donc la taille d’un enregistrement sera de 2^10 = 1024 Bytes (1K)
- Si nous avions formaté la partition avec le paramètre /L, nous aurions lu la valeur 0x01 dans le champ clusters per MFT Record. Dans ces condition, la taille d’un record aurait été 1 cluster. Comme 1 cluster occupe 8 secteurs, ça nous aurait donné 4K par enregistrement (ce qui est bien le but du paramètre /L)
Clusters to MFT est de 786432, et nous avons 8 secteurs par cluster. Donc, la MFT est localisée au secteur 6293504 ( = 2048 + 786432 * 8 )
Nous pouvons voir à cet emplacement, le premier fichier de la MFT : $MFT
Sachant que chaque enregistrement occupe 1K, il est possible de parcourir tous les enregistrements de la MFT jusqu’à, par exemple, l’enregistrement $Volume qui fournit le nom du volume. Puisqu’il s’agit du 4ième, nous le trouverons au secteur 6293510.
Si nous ne trouvons rien de ce genre à cet emplacement, c’est que soit la donnée a été écrasée, soit qu’on n’est pas au bon endroit : Le secteur d’amorçage n’est peut-être pas le bon, ou contient de mauvaises informations
Dans l’article suivant nous récupérons une partition.
Serge Gourraud
55 AA
Comments
- Anonymous
January 07, 2015
Il arrive que les structures qui décrivent les partitions sur les disques soient perdues ou corrompues