我在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

最佳答案

您可以使用此处提到的fget或ntfscopy:
http://blog.opensecurityresearch.com/2011/10/how-to-acquire-locked-files-from.html

关于windows - 如何打开NTFS元数据/系统文件: $LogFile, $ Volume,$ Bitmap?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20714295/

10-11 18:34