如何确定何时刻录/刻录了光盘(DVD)?


13

有没有一种方法/工具可以高度确定地确定光盘的写入/刻录日期和时间?这是关于数据取证的,应该是一个可靠的证明。我已经尝试过IsoBuster,但是它没有显示写入曲目的日期/时间。


1
碳测年?:)只是开个玩笑:确实确实好像您应该寻找物理学的答案,而不是计算机科学。
Celada

1
我必须同意@Celada刻录到磁盘的任何日期都容易被伪造。为了提供可靠的证据,您可能需要对磁盘本身进行物理测试。
Dracs

@Celada,很好,这是一个很好的输入,谢谢。但是我希望有一种使用通用软件/硬件来确定它的好方法,因为在这种情况下,资源起着作用并且是瓶颈。
woerndl

@Dracs也谢谢你。好吧,我基本上将所有内容都视为“可靠证据”,这比文件更改日期要好。
woerndl

2
如果您发现一张声称在1980年之前写过的CD,那可能是假的。
Daniel R Hicks

Answers:


18

大多数光学数据光盘使用CD-ROMISO 9660文件系统标准卷和文件结构进行信息交换通用磁盘格式规范或两者(称为UDF桥)。

要找出哪个,您可以执行

mount

在Linux上安装光盘后,即可识别光盘驱动器的设备文件。

输出示例:

/dev/sr0 /media/dennis/CDROM iso9660 ro,nosuid,nodev,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500,uhelper=udisks2 0 0

在这里,设备文件为/dev/sr0。命令

disktype /dev/sr0

将显示可用的文件系统。如果两者都存在,则分析ISO 9660应该更容易。

ISO 9660

该标准将字段创建日期和时间字段指定为创建卷时刻的数字表示形式,以以下格式写入主卷描述符的第814至830字节:

YYYYMMDDHHMMSSCCO

其中CC是厘米,O是每15分钟与GMT的偏移量,存储为8位整数(二进制补码)。

光盘的前32 KiB(32,768字节)没有被ISO 9660使用,并且上面的描述符紧随未使用的块之后,因此我们感兴趣的是第33,582个字节和随后的16个字节。

可以使用任何可以在光盘上转储/读取原始数据的工具来分析此信息。在Linux上,可以使用dd转储映像的相关部分,并使用hexdump正确查看最后一个字节:

dd if=/dev/sr0 bs=1 skip=33581 count=17 | hexdump -C

对于我的Ubuntu 12.04 x64 LiveCD,它提供了:

00000000  32 30 31 32 30 38 32 33  31 37 31 33 34 37 30 30  |2012082317134700|
00000010  00                                                |.|

因此该图片是在20128月23日格林尼治标准时间17:13:47.00创建的

UDF

该标准将归档的RecordingDateandTime指定为创建主卷的时刻的二进制表示形式,并以以下格式写入主卷描述符的第376至387个字节:

TT tT YY YY MM DD HH MM SS CC BB AA

在此,每对是一个八位位组(字节),即XX由两个十六进制数组成。

  • TT tT是一个小尾数的 16位整数,代表时间戳的类型和时区。

    12个最低有效位(TTT)保留时区,以分钟为单位(以分钟为单位)编码为有符号整数(二进制补码表示形式)与UTC的偏移量。

    四个最高有效位(t)保持类型(总是1,表示本地时间)。

  • YY YY是用带符号的小尾数 16位整数(二进制补码表示)编码的年份。

  • MMDDHH MMSSCCBBAA是代表8位无符号整数,月,日,时,分,秒,百分之一秒,几百微秒和创造微秒。

同样,UDF不使用光盘的前32 KiB。此外,以下32 KiB字节保留用于旧版ISO 9660文件系统(如果存在,则可能会占用更多空间)。

在“纯” UDF光盘上,命令

dd if=/dev/sr0 bs=1 skip=65912 count=12 | hexdump -C

将显示编码的时间戳。

为了进行测试,我使用K3b创建了UDF图像。该dd命令的输出如下

00000000  4c 1f dd 07 03 01 0f 0b  11 00 00 00              |L...........|
0000000c

分析:

  • 0xF4C(十六进制)大于0x800,因此-为负数。从0xF4C休息0x1000会得到-180(十进制)。这表示时区为UTC-3。

  • 0x07DD为2013年(十进制)(创建年份)。

  • 其余八位字节可以按其十六进制表示形式进行字面解释(0x0F,0x0B和0x11为十进制的15、11和17)。

    这表示该图片是在20133月1日15:11:17.000000 UTC + 3创建的

注意事项

  • 篡改这个日期很简单。只需要做的就是在创建映像之前更改计算机的日期。

  • 如果映像是在实际刻录到光盘之前创建的,则以前的时间将被记录。因此,该字段仅是所有者自己创建的光盘的潜在证据。


我试过跑步dd if=/dev/disk4 | tail -c +33144 | head -c 17 | hexdump -C。但是我只能得到零。我的计算32768 + 376是否正确,或者未使用的UDF块的大小是否不同?我用谷歌搜索,但是没有找到任何东西。
woerndl

Disktype返回以下内容: --- /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

它应该与音频光盘一起使用吗?(在我看来不是)
Franck Dernoncourt 2014年

@FranckDernoncourt:否,ISO 9660和UDF是光学数据光盘的文件系统。
丹尼斯

@丹尼斯谢谢!关于以下方面的任何想法:如何确定何时刻录/刻录了音频光盘(CD)?
Franck Dernoncourt 2014年

-1

是的,有:datetime属性是你在找什么。只需更改文件夹的视图并检查文件的属性即可。

在一分钟前检查了W7和Mac OS X上的一个磁盘。请参见下面的屏幕截图。

在此处输入图片说明 在此处输入图片说明


1
当文件被刻录到磁盘上时,文件修改时间与任何时间都没有关系……如果是音频光盘或类似的没有文件系统的文件怎么办?
Celada

OP没有提到使用哪种CD \ DVD,对于第二种,一旦写入CD \ DVD,就无法更改属性,因此,即使没有提供100%的属性,为什么也不能将这些属性用作信息源保证?
Volodymyr M.

@Volodymyr文件更改日期就是我现在拥有的所有内容。它们只是一种证明,但不能提供我正在寻找的确定性。谢谢您的努力。
woerndl

@Celada您是否找到有关音频光盘的问题的答案?我有相同的问题。
Franck Dernoncourt 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.