Większość optycznych dysków z danymi używa standardowego systemu plików ISO 9660 Wolumin i struktura plików na CD-ROM-ie do wymiany informacji , Universal Format Format Specification lub obu (zwanych mostem UDF ).
Aby dowiedzieć się, które możesz wykonać
mount
w systemie Linux po zamontowaniu dysku w celu zidentyfikowania pliku urządzenia napędu optycznego.
Przykładowe dane wyjściowe:
/dev/sr0 /media/dennis/CDROM iso9660 ro,nosuid,nodev,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500,uhelper=udisks2 0 0
Tutaj jest plik urządzenia /dev/sr0
. Komenda
disktype /dev/sr0
wyświetli dostępne systemy plików. Jeśli oba są obecne, analiza ISO 9660 powinna być łatwiejsza.
ISO 9660
Norma określa pole Data i godzina utworzenia woluminu jako liczbową reprezentację momentu utworzenia woluminu, zapisaną w bajtach od 814 do 830 podstawowego deskryptora woluminu w następującym formacie:
YYYYMMDDHHMMSSCCO
gdzie CC to centisekundy, a O to przesunięcie w stosunku do GMT w 15-minutowych odstępach, przechowywane jako 8-bitowa liczba całkowita ( reprezentacja uzupełnienia dwóch ).
Pierwsze 32 KiB (32 768 bajtów) dysku nie jest używane przez ISO 9660, a powyższy deskryptor następuje bezpośrednio po nieużywanym bloku, więc interesuje nas 33 582 bajt i 16 kolejnych.
Informacje te mogą być analizowane przez dowolne narzędzie, które może zrzucić / odczytać surowe dane na dysku optycznym. W systemie Linux możesz użyć dd, aby zrzucić odpowiednią część obrazu, a zrzut heksowy, aby poprawnie wyświetlić ostatni bajt:
dd if=/dev/sr0 bs=1 skip=33581 count=17 | hexdump -C
W przypadku mojego dysku LiveCD Ubuntu 12.04 x64 daje to:
00000000 32 30 31 32 30 38 32 33 31 37 31 33 34 37 30 30 |2012082317134700|
00000010 00 |.|
więc obraz został utworzony 23 sierpnia 2012 r. o godz. 17: 13: 47.00 GMT .
UDF
Standard określa zapisaną datę zapisu i datę jako binarną reprezentację momentu utworzenia woluminu podstawowego, zapisaną w bajtach od 376 do 387 bajtu podstawowego deskryptora woluminu w następującym formacie:
TT tT YY YY MM DD HH MM SS CC BB AA
Tutaj każda para jest oktetem (bajtem), tzn. XX
Składa się z dwóch liczb szesnastkowych.
TT tT
to 16-bitowa liczba całkowita typu endian reprezentująca typ i strefę czasową znacznika czasu.
12 najmniej znaczących bitów ( TTT
) przechowuje strefę czasową, zakodowaną jako przesunięcie względem UTC w minutach jako liczba całkowita ze znakiem ( reprezentacja uzupełnienia dwóch ).
Cztery najbardziej znaczące bity ( t
) zawierają typ (zawsze 1
, oznaczający czas lokalny).
YY YY
jest rokiem zakodowanym jako 16-bitowa liczba całkowita ze znakiem little-endian ( reprezentacja uzupełnienia dwóch ).
MM
, DD
, HH
MM
, SS
, CC
, BB
I AA
są niepodpisane 8-bitowe liczby całkowite reprezentujące miesiąc, dzień, godzina i minuty, sekundy, centisecond setki mikrosekund i mikrosekundy stworzenia.
Ponownie, pierwsze 32 KiB płyty nie są używane przez UDF. Ponadto następujące 32 bajty KiB są zarezerwowane dla starszego systemu plików ISO 9660 (który może zajmować więcej miejsca, jeśli jest obecny).
Na „czystym” dysku UDF polecenie
dd if=/dev/sr0 bs=1 skip=65912 count=12 | hexdump -C
wyświetli zakodowany znacznik czasu.
Do celów testowych stworzyłem obraz UDF za pomocą K3b. Dane wyjściowe dd
polecenia były następujące
00000000 4c 1f dd 07 03 01 0f 0b 11 00 00 00 |L...........|
0000000c
Analiza:
0xF4C (szesnastkowy) jest większy niż 0x800, a zatem ujemny. Odpoczynek 0x1000 od 0xF4C daje -180 po przecinku. Oznacza to, że strefa czasowa to UTC - 3.
0x07DD to 2013 w systemie dziesiętnym (rok utworzenia).
Pozostałe oktety można interpretować dosłownie w ich reprezentacji szesnastkowej (0x0F, 0x0B i 0x11 to 15, 11 i 17 w systemie dziesiętnym).
Oznacza to, że obraz został utworzony 1 marca 2013 r. O godzinie 15: 11: 17.000000 UTC + 3 .
Ostrzeżenia
Łatwo jest manipulować tą datą. Wszystko, co jest wymagane, to zmiana daty komputera przed utworzeniem obrazu.
Jeśli obraz zostanie utworzony przed faktycznym nagraniem na dysk, poprzedni czas zostanie nagrany. Zatem pole to tylko potencjalny dowód na dyski, które zostały utworzone przez samego właściciela.