Comment savoir quand un disque (DVD) a été gravé / gravé?

13

Existe-t-il un moyen / un outil pour déterminer la date et l'heure à laquelle un disque a été gravé / gravé avec une grande certitude? Il s'agit de la criminalistique des données et devrait être une preuve solide. J'ai déjà essayé IsoBuster, mais il ne m'a pas montré la date / heure à laquelle la piste a été écrite.

woerndl
la source
1
Datation au carbone ? :) Ce n'est qu'une demi-blague: il semble vraiment que vous devriez vous tourner vers la physique pour la réponse, pas l'informatique.
Celada
1
Je serais d'accord avec @Celada Toute date gravée sur le disque serait facilement truquée. Pour une preuve solide, vous devrez probablement effectuer des tests physiques sur le disque lui-même.
Dracs
@Celada, eh bien c'est sûr une bonne entrée, merci. Mais j'espère qu'il existe un bon moyen de le déterminer avec un logiciel / matériel commun, car les ressources jouent un rôle et sont un goulot d'étranglement dans ce cas particulier.
woerndl
@Dracs merci aussi. Eh bien, je prends tout essentiellement comme une «preuve solide» qui est meilleure que les dates de changement de fichier.
woerndl
2
Si vous trouvez un CD qui prétend avoir été écrit avant 1980, c'est probablement un faux.
Daniel R Hicks

Réponses:

18

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

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 XXest composée de deux nombres hexadécimaux.

  • TT tTest 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 YYest 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, BBEt ne AAsont 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 ddcommande é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.

Dennis
la source
J'ai essayé de courir dd if=/dev/disk4 | tail -c +33144 | head -c 17 | hexdump -C. Mais je n'ai que des zéros. Mon calcul 32 768 + 376 est-il correct ou le bloc UDF inutilisé a-t-il une taille différente? Je l'ai googlé, mais je n'ai rien trouvé.
woerndl
Disktype renvoie les éléments suivants: --- /dev/disk4 Block device, size 4.383 GiB (4706074624 bytes) disktype: Data read failed at position 4706070528: Input/output error UDF file system Sector size 2048 bytes Volume name "Alenander" UDF version 1.02 disktype: Data read failed at position 4706009088: Input/output error
woerndl
Est-il censé fonctionner avec des disques audio? (ne me semble pas)
Franck Dernoncourt
@FranckDernoncourt: Non. ISO 9660 et UDF sont des systèmes de fichiers de disques de données optiques .
Dennis
@Dennis Merci! Une idée pour: Comment savoir quand un disque audio (CD) a été gravé / gravé?
Franck Dernoncourt
-1

Oui, il y a: dateet les timeattributs sont ce que vous recherchez. Il suffit de changer la vue du dossier et de vérifier les propriétés du fichier.

Vérifié il y a une minute un disque sur W7 et Mac OS X. Voir les captures d'écran ci-dessous ..

entrez la description de l'image ici entrez la description de l'image ici

Volodymyr M.
la source
1
Les temps de modification des fichiers n'ont probablement rien à voir avec le moment où les fichiers ont été gravés sur un disque ... et si c'est un disque audio ou quelque chose comme ça, qui n'a pas de système de fichiers?
Celada
OP ne mentionne pas quel type de CD \ DVD est utilisé, pour le 2ème, une fois gravé sur CD \ DVD, les attributs ne peuvent pas être modifiés, alors pourquoi ceux-ci ne peuvent pas être utilisés comme source d'informations, même s'il ne donne pas 100% garantie?
Volodymyr M.
Les dates de changement de fichier @Volodymyr sont tout ce que j'ai en ce moment. Ils sont une sorte de preuve, mais n'offrent pas la certitude que je recherche. Merci pour vos efforts.
woerndl
@Celada Avez-vous trouvé une réponse à votre question sur le disque audio? J'ai le même problème.
Franck Dernoncourt