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 回答