La plupart des disques de données optiques utilisent le volume standard et la structure de fichiers du CD-ROM ISO 9660 pour l'échange d'informations , la spécification de format de disque universel ou les deux (appelés ponts UDF ).
Pour savoir lequel, vous pouvez exécuter
mount
sous Linux une fois le disque monté afin d'identifier le fichier de périphérique du lecteur de disque optique.
Exemple de sortie:
/dev/sr0 /media/dennis/CDROM iso9660 ro,nosuid,nodev,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500,uhelper=udisks2 0 0
Ici, le fichier du périphérique est /dev/sr0
. La commande
disktype /dev/sr0
affichera les systèmes de fichiers disponibles. Si les deux sont présents, l'analyse de la norme ISO 9660 devrait être plus facile.
ISO 9660
La norme spécifie le champ Date et heure de création du volume en tant que représentation numérique du moment de la création du volume, écrit dans le 814e à 830e octet du descripteur de volume principal au format suivant:
YYYYMMDDHHMMSSCCO
où CC sont des centisecondes et O est le décalage par rapport à GMT à 15 minutes d'intervalle, stocké sous la forme d'un entier de 8 bits ( représentation du complément à deux ).
Les 32 premiers Ko (32 768 octets) du disque ne sont pas utilisés par ISO 9660 et le descripteur ci-dessus suit immédiatement le bloc inutilisé, nous sommes donc intéressés par le 33 582e octet et les 16 suivants.
Ces informations peuvent être analysées par n'importe quel outil capable de vider / lire les données brutes sur le disque optique. Sous Linux, vous pouvez utiliser dd pour vider la partie pertinente de l'image et hexdump pour afficher correctement le dernier octet:
dd if=/dev/sr0 bs=1 skip=33581 count=17 | hexdump -C
Pour mon LiveCD Ubuntu 12.04 x64, cela donne:
00000000 32 30 31 32 30 38 32 33 31 37 31 33 34 37 30 30 |2012082317134700|
00000010 00 |.|
donc l'image a été créée le 23 août 2012 à 17: 13: 47.00 GMT .
UDF
La norme spécifie le RecordingDateandTime déposé en tant que représentation binaire du moment de la création du volume principal, écrit dans le 376e au 387e octet du descripteur de volume principal au format suivant:
TT tT YY YY MM DD HH MM SS CC BB AA
Ici, chaque paire est un octet (octet), c'est-à-dire qu'elle XX
est composée de deux nombres hexadécimaux.
TT tT
est un petit-boutiste entier de 16 bits représentant la zone de type et l' heure de l'estampille temporelle.
Les 12 bits les moins significatifs ( TTT
) contiennent le fuseau horaire, codé comme décalage par rapport à l'UTC en minutes sous forme d'entier signé ( représentation du complément à deux ).
Les quatre bits les plus significatifs ( t
) contiennent le type (toujours 1
, signifiant l'heure locale).
YY YY
est l'année codée sous la forme d'un entier 16 bits signé petit-boutien ( représentation du complément à deux ).
MM
, DD
, HH
MM
, SS
, CC
, BB
Et ne AA
sont pas signés entiers 8 bits représentant le mois, le jour, l' heure minute, seconde, centisecond, des centaines de microsecondes et microsecondes de la création.
Encore une fois, les 32 premiers Ko du disque ne sont pas utilisés par UDF. En outre, les 32 octets suivants sont réservés à un système de fichiers ISO 9660 hérité (qui peut occuper plus d'espace s'il est présent).
Sur un disque UDF "pur", la commande
dd if=/dev/sr0 bs=1 skip=65912 count=12 | hexdump -C
affichera l'horodatage codé.
À des fins de test, j'ai créé une image UDF avec K3b. La sortie de la dd
commande était la suivante
00000000 4c 1f dd 07 03 01 0f 0b 11 00 00 00 |L...........|
0000000c
Une analyse:
0xF4C (hexadécimal) est plus grand que 0x800 et - par conséquent - négatif. Le repos de 0x1000 à partir de 0xF4C donne -180 en décimal. Cela signifie que le fuseau horaire est UTC-3.
0x07DD est 2013 en décimal (l'année de création).
Les octets restants peuvent être interprétés littéralement dans leur représentation hexadécimale (0x0F, 0x0B et 0x11 sont 15, 11 et 17 en décimal).
Cela signifie que l'image a été créée le 1er mars 2013 à 15: 11: 17.000000 UTC + 3 .
Avertissements
Il est simple de modifier cette date. Il suffit de modifier la date de l'ordinateur avant de créer l'image.
Si l'image est créée avant d'être réellement gravée sur le disque, la première heure sera enregistrée. Ainsi, le champ n'est qu'une preuve potentielle pour les disques qui ont été créés par le propriétaire lui-même.