有没有方法/工具可以高度确定光盘写入/刻录的日期和时间?这涉及数据取证,应该是一个可靠的证据。我已经尝试过 IsoBuster,但它没有显示曲目写入的日期/时间。
答案1
大多数光盘使用ISO 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
在哪里抄送是厘秒,并且哦是以 15 分钟为间隔的 GMT 偏移量,存储为 8 位整数 (二进制补码表示)。
ISO 9660 未使用光盘的前 32 KiB(32,768 字节),并且上述描述符紧跟未使用的块,因此我们感兴趣的是第 33,582 个字节和随后的 16 个字节。
任何能够转储/读取光盘上的原始数据的工具都可以分析这些信息。在 Linux 上,您可以使用日转储图像的相关部分并使用 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 |.|
所以图像是在2012 年 8 月 23 日,17:13:47.00 GMT。
自定义函数
标准规定了归档的录制日期和时间作为主卷创建时刻的二进制表示,写入第 376 至 387 个字节主卷描述符格式如下:
TT tT YY YY MM DD HH MM SS CC BB AA
这里,每一对都是一个八位字节(字节),即XX
由两个十六进制数组成。
TT tT
是小端16位整数,表示时间戳的类型和时区。最低 12 位 (
TTT
) 表示时区,以有符号整数 ( ) 的形式编码为与 UTC 之间的偏移量(分钟)。二进制补码表示)。四个最高的有效位(
t
)保存类型(始终1
,表示当地时间)。MM
,,,,,和是无符号的8位整数,分别代表创建的月、日、时、分、秒、厘秒、百微秒DD
和微秒。HH
MM
SS
CC
BB
AA
再次强调,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)。
这意味着该图像是在2013 年 3 月 1 日,15:11:17.000000 UTC - 3。
注意事项
篡改这个日期很简单。只需在创建映像之前更改计算机的日期即可。
如果镜像是在实际刻录到光盘之前创建的,则会记录之前的时间。因此,该字段仅是所有者自己创建的光盘的潜在证据。
答案2
是的,有:date
并且time
属性就是您要找的。只需更改文件夹的视图并检查文件的属性即可。
一分钟前检查了 W7 和 Mac OS X 上的一个磁盘。请参见下面的屏幕截图。