Kebanyakan disk data optik menggunakan standar sistem file ISO 9660 Volume dan struktur file CD-ROM untuk pertukaran informasi , Spesifikasi Format Disk Universal atau keduanya (disebut jembatan UDF ).
Untuk mencari tahu yang mana, Anda bisa mengeksekusi
mount
di Linux setelah disk telah dipasang untuk mengidentifikasi file perangkat drive disk optik.
Contoh output:
/dev/sr0 /media/dennis/CDROM iso9660 ro,nosuid,nodev,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500,uhelper=udisks2 0 0
Di sini, file perangkatnya /dev/sr0
. Perintah
disktype /dev/sr0
akan menampilkan sistem file yang tersedia. Jika keduanya ada, menganalisis ISO 9660 akan lebih mudah.
ISO 9660
Standar menentukan bidang Tanggal dan Waktu Pembuatan Volume sebagai representasi numerik dari saat pembuatan volume, ditulis untuk byte ke-814 hingga 830 dari Primary Volume Descriptor dalam format berikut:
YYYYMMDDHHMMSSCCO
di mana CC adalah centiseconds dan O adalah offset dari GMT dalam interval 15 menit, disimpan sebagai integer 8-bit ( representasi komplemen dua's ).
32 KiB pertama (32.768 byte) disc tidak digunakan oleh ISO 9660 dan deskriptor di atas segera mengikuti blok yang tidak digunakan, jadi kami tertarik byte 33,582 dan 16 yang mengikuti.
Informasi ini dapat dianalisis oleh alat apa pun yang dapat membuang / membaca data mentah pada cakram optik. Di Linux, Anda dapat menggunakan dd untuk membuang bagian gambar yang relevan dan hexdump untuk melihat byte terakhir dengan benar:
dd if=/dev/sr0 bs=1 skip=33581 count=17 | hexdump -C
Untuk LiveCD Ubuntu 12.04 x64 saya, ini memberikan:
00000000 32 30 31 32 30 38 32 33 31 37 31 33 34 37 30 30 |2012082317134700|
00000010 00 |.|
jadi gambar itu dibuat pada 23 Agustus 2012, pukul 17.13: 47.00 GMT .
UDF
Standar menentukan RecordingDateandTime yang diajukan sebagai representasi biner dari saat pembuatan volume primer, ditulis ke byte ke-376 hingga 387 dari Penjelasan Volume Utama dalam format berikut:
TT tT YY YY MM DD HH MM SS CC BB AA
Di sini, setiap pasangan adalah oktet (byte), yaitu XX
terdiri dari dua angka heksadesimal.
TT tT
adalah integer 16-bit little-endian yang mewakili jenis dan zona waktu cap waktu.
12 bit paling tidak signifikan ( TTT
) memegang zona waktu, dikodekan sebagai offset dari UTC dalam hitungan menit sebagai integer yang ditandatangani ( representasi komplemen dua ).
Empat bit paling signifikan ( t
) memegang tipe (selalu 1
, berarti waktu lokal).
YY YY
adalah tahun yang dikodekan sebagai integer 16-bit little-endian yang telah ditandatangani ( representasi pelengkap dua ).
MM
, DD
, HH
MM
, SS
, CC
, BB
Dan AA
adalah unsigned 8-bit bilangan bulat yang mewakili bulan, hari, jam menit, detik, centisecond, ratusan mikrodetik dan mikrodetik penciptaan.
Sekali lagi, 32 KiB pertama disc tidak digunakan oleh UDF. Selain itu, byte 32 KiB berikut dicadangkan untuk sistem file ISO 9660 lama (yang dapat menempati lebih banyak ruang jika ada).
Pada disk UDF "murni", perintah
dd if=/dev/sr0 bs=1 skip=65912 count=12 | hexdump -C
akan menampilkan cap waktu yang disandikan.
Untuk tujuan pengujian, saya telah membuat gambar UDF dengan K3b. Output dari dd
perintah adalah sebagai berikut
00000000 4c 1f dd 07 03 01 0f 0b 11 00 00 00 |L...........|
0000000c
Analisis:
0xF4C (heksadesimal) lebih besar dari 0x800 dan - karenanya - negatif. Beristirahat 0x1000 dari 0xF4C menghasilkan -180 dalam desimal. Ini berarti zona waktu adalah UTC - 3.
0x07DD adalah 2013 dalam desimal (tahun pembuatan).
Oktet yang tersisa dapat ditafsirkan secara harfiah dalam representasi heksadesimal mereka (0x0F, 0x0B dan 0x11 adalah 15, 11 dan 17 dalam desimal).
Ini berarti bahwa gambar itu dibuat pada 1 Maret 2013, pada 15: 11: 17.000000 UTC + 3 .
Peringatan
Sangat mudah untuk merusak tanggal ini. Yang diperlukan hanyalah mengubah tanggal komputer sebelum membuat gambar.
Jika gambar dibuat sebelum benar-benar dibakar ke disk, waktu yang lama akan direkam. Dengan demikian, bidang tersebut hanya merupakan bukti potensial untuk cakram yang dibuat oleh pemiliknya sendiri.