Có thể xác định khi phân vùng NTFS được tạo không?


16

Chúng tôi có một ứng dụng khách, nơi sẽ rất hữu ích để xác định KHI một ổ đĩa được khởi tạo hoặc phân vùng NTFS được tạo. Có một giá trị dấu thời gian ở đâu đó? Nếu bất cứ ai có thể đưa ra bất kỳ lời khuyên, nó sẽ được đánh giá rất cao.

Cảm ơn!

-slashp


Chỉ là một ý tưởng nhưng bạn có thể đảo ngược khối lượng tính toán UUID để lấy ngày / giờ không? (Tôi không biết UUID được tạo ra như thế nào nên sẽ mất một số nghiên cứu để tìm hiểu và có thể không thể thực hiện được.)
Chris Nava

1
@ChrisNava: ID duy nhất được sử dụng trong NTFS không phải là UUID 128 bit mà là số 64 bit ngẫu nhiên. (Bên cạnh đó, các hệ thống hiện đại cũng không tạo UUID dựa trên thời gian loại 1; UUID dựa trên loại ngẫu nhiên loại 4 được ưu tiên bảo mật. Tuy nhiên, nếu đó UUID loại 1, thì sẽ không có bất kỳ tính toán nào để đảo ngược; dấu thời gian là được lưu trữ trong tầm nhìn rõ ràng.)
user1686

Câu trả lời:


17

Đúng. Bạn thậm chí có thể làm điều đó qua mạng LAN.

Giao dịch CIFS là TRANS2_QFSINFOvà mức thông tin là SMB_QUERY_FS_VOLUME_INFO. Hàm API Windows NT gốc để truy vấn thời gian tạo của một khối là ZwQueryVolumeInformationFile(), mang lại FILE_FS_VOLUME_INFORMATIONcấu trúc dữ liệu (gần giống với CIFS, lưu ý) khi được yêu cầu FileFsVolumeInformationlớp thông tin. Kiểm tra xem truy vấn này có hoạt động không là một phần của trình kiểm tra IFS mà Microsoft cung cấp cho các nhà phát triển trình điều khiển.

Thật thú vị, không ai có vẻ đã viết một tiện ích tiện dụng chỉ truy vấn một tập và in dấu thời gian tạo của nó ở dạng người có thể đọc được. 1 Cách gần nhất mà bạn sẽ đi xa nhất có thể nói là tìm ra procmoncông cụ của SysIternals và tìm kiếm các truy vấn thông tin âm lượng phát trực tuyến. Có lẽ ai đó đọc nó sẽ được truyền cảm hứng để tạo ra một vollệnh tăng cường .

Có, dấu thời gian tạo âm lượng được khởi tạo đúng cách và không chỉ được đặt thành không hoặc một số hằng số khác. Tôi chưa kiểm tra, nhưng phỏng đoán có giáo dục của tôi về vị trí lưu trữ thông tin này là $STANDARD_INFORMATIONthuộc tính của $Volumemục nhập MFT. Tôi có thể nghĩ về ba nơi khác có thể, nhưng đó là nơi hợp lý nhất.


grawityTiện ích của 1 chỉ cần đánh bóng hơn một chút, bao gồm cả những cách sử dụng đơn giản FileTimeToSystemTime()GetTimeFormat(), để có thể sử dụng được cho người dùng cuối không thể giải mã dấu thời gian Win32 trong đầu. ☺


Ồ, tôi cho bạn +1 cho câu trả lời này vì đó chính xác là những gì tôi đang tìm kiếm. Thật không may, tôi không phải là một lập trình viên Win32 API có kiến ​​thức về các hệ thống bên trong và đang tìm kiếm một giải pháp nhanh chóng. Suy nghĩ tốt với procmon. Cảm ơn dù !!!
chém

7
Một cái gì đó như thế này ? (cảnh báo mã xấu xí)
dùng1686

8

Không có "ngày tạo khối" mà tôi biết có tích hợp vào NTFS. Tuy nhiên, bạn sẽ có thể ước chừng ngày tạo khá gần bằng cách xem ngày tạo của System Volume Informationthư mục trong thư mục gốc.


2
Điều này cho tôi một xấp xỉ rất tốt. Cám ơn bạn đã phản ứng nhanh chóng của bạn! Bây giờ tôi biết ai sẽ đổ lỗi cho ổ đĩa không được bao gồm trong bản sao lưu của chúng tôi :).
chém

0

Điều này được phơi bày ở đâu đó. Nếu bạn khởi động CD Windows XP và truy cập bảng điều khiển phục hồi, phiên bản chkdsk ở đó sẽ in ra ngày tạo âm lượng sau khi chạy xong.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.