Có cách nào / công cụ để xác định ngày và thời gian khi đĩa được ghi / ghi với độ chắc chắn cao không? Đây là về pháp y dữ liệu và phải là một bằng chứng vững chắc. Tôi đã thử IsoBuster, nhưng nó không cho tôi biết ngày / giờ mà bản nhạc được viết.
Có cách nào / công cụ để xác định ngày và thời gian khi đĩa được ghi / ghi với độ chắc chắn cao không? Đây là về pháp y dữ liệu và phải là một bằng chứng vững chắc. Tôi đã thử IsoBuster, nhưng nó không cho tôi biết ngày / giờ mà bản nhạc được viết.
Câu trả lời:
Hầu hết các đĩa dữ liệu quang sử dụng cấu trúc tệp và cấu trúc tệp tiêu chuẩn của hệ thống tệp ISO 9660 để trao đổi thông tin , Đặc tả định dạng đĩa chung hoặc cả hai (được gọi là cầu UDF ).
Để tìm ra cái nào, bạn có thể thực thi
mount
trên Linux sau khi đĩa được gắn để xác định tệp thiết bị của ổ đĩa quang.
Ví dụ đầu ra:
/dev/sr0 /media/dennis/CDROM iso9660 ro,nosuid,nodev,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500,uhelper=udisks2 0 0
Ở đây, tập tin thiết bị là /dev/sr0
. Lệnh
disktype /dev/sr0
sẽ hiển thị các hệ thống tập tin có sẵn. Nếu cả hai đều có mặt, việc phân tích ISO 9660 sẽ dễ dàng hơn.
Tiêu chuẩn chỉ định ngày và thời gian tạo khối lượng của trường dưới dạng biểu thị bằng số của thời điểm tạo khối, được ghi vào byte 814 đến 830 của Bộ mô tả âm lượng chính theo định dạng sau:
YYYYMMDDHHMMSSCCO
trong đó CC là centi giây và O là phần bù từ GMT trong các khoảng thời gian 15 phút, được lưu dưới dạng số nguyên 8 bit ( biểu diễn bổ sung của hai ).
32 KiB đầu tiên (32.768 byte) của đĩa không được ISO 9660 sử dụng và bộ mô tả ở trên ngay lập tức theo khối không được sử dụng, vì vậy chúng tôi quan tâm đến byte thứ 33,582 và 16 theo sau.
Thông tin này có thể được phân tích bởi bất kỳ công cụ nào có thể kết xuất / đọc dữ liệu thô trên đĩa quang. Trên Linux, bạn có thể sử dụng dd để kết xuất phần có liên quan của hình ảnh và hexdump để xem byte cuối cùng một cách chính xác:
dd if=/dev/sr0 bs=1 skip=33581 count=17 | hexdump -C
Đối với Ubuntu 12.04 x64 LiveCD của tôi, điều này mang lại:
00000000 32 30 31 32 30 38 32 33 31 37 31 33 34 37 30 30 |2012082317134700|
00000010 00 |.|
vì vậy hình ảnh được tạo vào ngày 23 tháng 8 năm 2012 lúc 17: 13: 47.00 GMT .
Các quy định cụ thể tiêu chuẩn nộp RecordingDateandTime như một đại diện nhị phân của thời điểm tạo khối lượng chính của, ghi vào 376 để byte 387 của Descriptor Khối lượng sơ cấp trong các định dạng sau:
TT tT YY YY MM DD HH MM SS CC BB AA
Ở đây, mỗi cặp là một octet (byte), nghĩa là, XX
bao gồm hai số thập lục phân.
TT tT
là một số nguyên 16 bit nhỏ cuối đại diện cho loại và múi giờ của dấu thời gian.
12 bit có ý nghĩa nhỏ nhất ( TTT
) giữ múi giờ, được mã hóa dưới dạng phần bù từ UTC tính bằng phút dưới dạng số nguyên đã ký ( biểu diễn bổ sung của hai ).
Bốn bit quan trọng nhất ( t
) giữ loại (luôn luôn 1
, có nghĩa là giờ địa phương).
YY YY
là năm được mã hóa dưới dạng số nguyên 16 bit nhỏ có chữ ký ( biểu diễn hai phần bù ).
MM
, DD
, HH
MM
, SS
, CC
, BB
Và AA
là các số nguyên 8-bit unsigned đại diện cho các tháng, ngày, giờ phút, giây, centisecond, hàng trăm micro giây và micro của tạo vật.
Một lần nữa, 32 KiB đầu tiên của đĩa không được UDF sử dụng. Ngoài ra, 32 byte KiB sau đây được dành riêng cho hệ thống tệp ISO 9660 cũ (có thể chiếm nhiều dung lượng hơn nếu có).
Trên đĩa UDF "thuần túy", lệnh
dd if=/dev/sr0 bs=1 skip=65912 count=12 | hexdump -C
sẽ hiển thị dấu thời gian được mã hóa.
Để thử nghiệm, tôi đã tạo một hình ảnh UDF với K3b. Đầu ra của dd
lệnh là như sau
00000000 4c 1f dd 07 03 01 0f 0b 11 00 00 00 |L...........|
0000000c
Phân tích:
0xF4C (thập lục phân) lớn hơn 0x800 và - do đó - âm tính. Nghỉ ngơi 0x1000 từ 0xF4C cho -180 ở dạng thập phân. Điều này có nghĩa là múi giờ là UTC - 3.
0x07DD là số thập phân 2013 (năm tạo).
Các octet còn lại có thể được hiểu theo nghĩa đen trong biểu diễn thập lục phân của chúng (0x0F, 0x0B và 0x11 là 15, 11 và 17 theo số thập phân).
Điều này có nghĩa là hình ảnh được tạo vào ngày 1 tháng 3 năm 2013, lúc 15: 11: 17.000000 UTC + 3 .
Thật đơn giản để làm xáo trộn ngày này. Tất cả những gì cần thiết là thay đổi ngày của máy tính trước khi tạo hình ảnh.
Nếu hình ảnh được tạo trước khi nó thực sự được ghi vào đĩa, thời gian trước sẽ được ghi lại. Do đó, trường chỉ là bằng chứng tiềm năng cho các đĩa được tạo bởi chính chủ sở hữu.
dd if=/dev/disk4 | tail -c +33144 | head -c 17 | hexdump -C
. Nhưng tôi chỉ nhận được số không. Tính toán của tôi 32.768 + 376 có đúng không hoặc khối UDF chưa sử dụng có kích thước khác không? Tôi googled nó, nhưng không tìm thấy một cái gì đó.
--- /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
Vâng, có: date
và time
các thuộc tính là những gì bạn đang tìm kiếm. Chỉ cần thay đổi giao diện của thư mục và kiểm tra Thuộc tính của tệp.
Đã kiểm tra một phút trước một đĩa trên cả W7 và Mac OS X. Xem ảnh chụp màn hình bên dưới ..