3

64 ビットの Windows 7 を実行しています。一部の NTFS システム ファイルに関連付けられている FileID を取得したいと考えています。一部 (「$Mft」、「$MftMirr」) は開くことができますが、他のもの (「$LogFile」および「$Bitmap」) は「アクセス拒否」エラーまたは無効なパラメーター (「$Volume」) で失敗します。管理者としてそれを実行し、ローカル サービスとして実行しようとしましたが、それでも失敗します。私は以下を使用しています:

/* open the file for checking the File ID */
h = CreateFileW (
        argv[i]                   , // _In_      LPCTSTR lpFileName,
        FILE_READ_ATTRIBUTES      , // _In_      DWORD dwDesiredAccess,
        FILE_SHARE_DELETE |
        FILE_SHARE_READ   |
        FILE_SHARE_WRITE          , // _In_      DWORD dwShareMode,
        NULL                      , // _In_opt_  LPSECURITY_ATTRIBUTES lpSecurityAttributes,
        OPEN_EXISTING             , // _In_      DWORD dwCreationDisposition,
        FILE_ATTRIBUTE_NORMAL| FILE_FLAG_BACKUP_SEMANTICS, // _In_      DWORD dwFlagsAndAttributes,
        NULL                        // _In_opt_  HANDLE hTemplateFile
    );
if (h == INVALID_HANDLE_VALUE) {
    err = GetLastError();
    wprintf(L"Can't open: '%s'. err:%u(0x%x)\n", argv[i], err, err);
    continue;
}

次の権限も設定しました(やり過ぎだとはわかっていますが、どれが機能するかわかりませんでした):SE_TCB_NAME、SE_DEBUG_NAME、SE_SECURITY_NAME、SE_BACKUP_NAME、SE_RESTORE_NAME、SE_MANAGE_VOLUME_NAME

4

1 に答える 1

1

ここに記載されている fget または ntfscopy を使用できます: http://blog.opensecurityresearch.com/2011/10/how-to-acquire-locked-files-from.html

于 2014-11-03T20:11:48.527 に答える