Apakah mungkin untuk menentukan kapan partisi NTFS dibuat?

16

Kami memiliki klien di mana akan sangat berguna untuk menentukan KAPAN sebuah drive diinisialisasi atau partisi NTFS dibuat. Apakah ada nilai cap waktu di suatu tempat? Jika ada yang bisa memberikan saran, itu akan sangat dihargai.

Terima kasih!

-slashp

slashp
sumber
Hanya sebuah gagasan tetapi bisakah Anda membalikkan perhitungan UUID volume untuk mendapatkan tanggal / waktu? (Saya tidak tahu bagaimana UUID dihasilkan sehingga perlu beberapa penelitian untuk mengetahuinya dan mungkin tidak mungkin sama sekali.)
Chris Nava
1
@ChrisNava: ID unik yang digunakan di NTFS bukan UUID 128-bit tetapi nomor 64-bit acak. (Selain itu, sistem modern juga tidak menghasilkan UUID berbasis waktu tipe 1; UUID berbasis acak tipe 4 lebih disukai untuk privasi. Namun, jika itu adalah UUID tipe 1, maka tidak akan ada perhitungan untuk mundur; timestamp adalah disimpan di depan mata.)
user1686

Jawaban:

17

Iya. Anda bahkan dapat melakukannya melalui LAN.

Transaksi CIFS adalah TRANS2_QFSINFOdan tingkat informasinya adalah SMB_QUERY_FS_VOLUME_INFO. Fungsi Windows NT API asli untuk menanyakan waktu pembuatan volume adalah ZwQueryVolumeInformationFile(), yang menghasilkan FILE_FS_VOLUME_INFORMATIONstruktur data (hampir identik dengan yang CIFS, perhatikan) ketika ditanya untuk FileFsVolumeInformationkelas informasi. Menguji bahwa kueri ini berfungsi adalah bagian dari penguji IFS yang disediakan Microsoft untuk pengembang driver.

Menariknya, tidak ada yang tampaknya telah menulis utilitas praktis yang hanya menanyakan volume dan mencetak cap waktu pembuatannya dalam bentuk yang dapat dibaca manusia. 1 Yang terdekat yang akan Anda dapatkan sejauh yang saya tahu adalah untuk menghidupkan procmonalat SysInternals ' dan mencari kueri informasi volume yang mengalir oleh. Mungkin seseorang yang membaca ini akan terinspirasi untuk membuat volperintah yang ditingkatkan .

Ya, timestamp penciptaan volume yang adalah benar diinisialisasi, dan tidak hanya mengatur ke nol atau konstan lainnya. Saya belum memeriksa, tetapi tebakan saya untuk lokasi penyimpanan informasi ini adalah $STANDARD_INFORMATIONatribut dari $Volumeentri MFT. Saya bisa memikirkan tiga tempat lain yang mungkin, tapi itu yang paling logis.


1grawity 'utilitas s hanya perlu sedikit lebih Polandia, termasuk penggunaan sederhana FileTimeToSystemTime()dan GetTimeFormat(), untuk membuatnya dapat digunakan untuk end-user yang tidak bisa decode Win32 timestamps di kepala mereka. ☺

JdeBP
sumber
Wow, saya memberi Anda +1 untuk jawaban ini karena itulah yang saya cari. Sayangnya, saya bukan programmer API Win32 dengan pengetahuan tentang sistem internal dan sedang mencari solusi cepat. Pikiran yang baik dengan procmon. Terimakasih Meskipun!!!
slashp
7
Sesuatu seperti ini ? (Peringatan kode jelek)
user1686
8

Tidak ada "tanggal pembuatan volume" yang saya tahu built-in ke NTFS. Namun, Anda harus dapat memperkirakan tanggal pembuatan dengan cukup dekat dengan melihat tanggal pembuatan System Volume Informationdirektori di root volume.

Andrew Lambert
sumber
2
Ini memberi saya perkiraan yang sangat baik. Terima kasih atas tanggapan cepat Anda! Sekarang saya tahu siapa yang harus disalahkan untuk drive yang tidak termasuk dalam cadangan kami :).
slashp
0

Ini terlihat di suatu tempat. Jika Anda mem-boot CD Windows XP dan mengakses konsol pemulihan, versi chkdsk di sana akan mencetak tanggal pembuatan volume setelah selesai dijalankan.

Harun
sumber