2012-07-25 64 views
3

雖然徘徊在網上找的如何讀/寫MFT的解釋,我發現如下因素部分:(http://www.installsetupconfig.com/win32programming/1996%20AppE_apnilife.pdf閱讀MFT在NTFS

如果NtfsProtectSystemFiles設置爲FALSE,則該特殊文件可以 是打開。然而,與 嘗試這樣做有一些缺點:因爲許多特殊文件在安裝卷時以特殊方式打開,因此它們不準備處理由調用ZwReadFile產生的IRP_MJ_READ請求, ,並且如果收到這樣的請求,則系統崩潰。通過使用ZwCreateSection和 ZwMapViewOfSection映射特殊文件,然後讀取映射數據,可以讀取這些特殊的 文件。 的另一個問題是,一些特殊文件沒有準備好處理 文件對象的最後一個句柄關閉時產生的IRP_MJ_CLEANUP請求,並且如果接收到這樣的請求 ,則系統崩潰。唯一的選擇是將打開的句柄複製到一個永不終止的進程中(如系統 進程),以將特殊文件的打開句柄複製到 。

  1. 是什麼意思「他們不準備處理IRP_MJ_READ請求」需要什麼樣的準備?什麼是IRP_MJ_READ?
  2. 「使用ZwCreateSection和ZwMapViewOfSection映射特殊文件,然後讀取映射數據」如何解決問題?
  3. 這是什麼意思「文件不準備處理當文件對象的最後一個句柄關閉時產生的IRP_MJ_CLEANUP請求」又是什麼準備?什麼是IRP_MJ_CLEANUP?
  4. 「將特殊文件的打開句柄複製到永不終止的進程中」如何解決問題?

回答

2

這是舊數據(從1996年)。多一點不正確。自那時起,世界就一直在發展。

您可能會嘗試打開\ $ MFT來讀取MFT,但正確獲取訪問位可能會有問題。你也可以寫他們,但這真的是在玩火。文件系統並不期望它的數據結構將被修改而不需要它的參與。

你打開原始分區並直接走過磁盤結構要好得多。

+0

實際上,這本書將是2000年左右的Nebbett的書。儘管如此,仍舊老舊。 – 0xC0000022L 2015-08-01 16:09:21