O que é C: \ $ Directory?

10

Quando executo Process Monitor , vejo ReadFile solicitações enviadas para C:\$Directory .

O que exatamente isso significa?

Atualização:

Eu também vejo $MapAttributeValue , que também parece desconhecido.

    
por Mehrdad 11.11.2011 / 21:03

2 respostas

5

Atualização: Eu pesquisei essa questão ainda mais (desde que notei o mesmo comportamento no meu próprio computador, e estava preocupado que isso fosse algum tipo de malware), e agora acredito que minha resposta original estava de fato incorreto. Aqui está o que eu encontrei agora:

  1. Vários processos diferentes são lidos a partir desse arquivo e de diferentes deslocamentos, mas com o mesmo tamanho: 4K (exatamente uma página de memória).
  2. Existem operações de ReadFile, mas não abrem o arquivo, o que faz pouco sentido.
  3. Olhando para o rastreamento de pilha, vejo que todas as solicitações incluem uma falha de página no rastreamento, por exemplo, este arquivo lido está dentro de IoPageRead() , função kernel que lê páginas do arquivo de paginação na memória.
  4. Essas leituras acontecem em C: \ $ Directory e V: \ $ Directory no meu sistema, as duas unidades que contêm arquivos de paginação nelas e em nenhum outro lugar.

Baseado nesta pesquisa, eu acredito strongmente que este "arquivo lido" é algum tipo de artefato do Process Monitor, e a leitura real acontece no arquivo de paginação. Não tenho idéia do porque o ProcMon lista o caminho como C: \ $ Directory.

Não creio agora que esse C: \ $ Directory seja um verdadeiro metarquivo NTFS NTFS . Eu não acho que agora isso poderia ser alguma atividade ilegítima (vírus ou outro malware).

    
por 12.11.2011 / 00:15
4

$ Directory e $ MapAttributeValue são provavelmente nomes de código para áreas do sistema no disco NTFS , e essas referências vêm de programas que abrem ou criam arquivos.

Esses nomes provavelmente pertencem a Metafiles , definidos pela wikipedia como:

NTFS contains several files that define and organize the file system. In all respects, most of these files are structured like any other user file ($Volume being the most peculiar), but are not of direct interest to file system clients. These metafiles define files, back up critical file system data, buffer file system changes, manage free space allocation, satisfy BIOS expectations, track bad allocation units, and store security and disk space usage information. All content is in an unnamed data stream, unless otherwise indicated.

O $ $ Directory é provavelmente o Master File Table (MFT) que é o diretório para todos os arquivos e pastas, onde são armazenados como metadados nome do arquivo, data de criação, permissões de acesso (pelo uso de listas de controle de acesso) e tamanho. Qualquer programa que abra ou crie um arquivo ou pasta acessa essa área do disco.

$ MapAttributeValue é provavelmente a área Listas de Atributos , descrita como:

For each file (or directory) described in the MFT record, there's a linear repository of stream descriptors (also named attributes), packed together in one or more MFT records (containing the so called attributes list), with extra padding to fill the fixed 1 KB size of every MFT record, and that fully describes the effective streams associated with that file.

    
por 03.02.2015 / 13:57

Tags