¿Qué es el directorio C: \ $?

11

Cuando ejecuto Process Monitor , veo ReadFilesolicitudes enviadas a C:\$Directory.

¿Qué significa esto exactamente?


Actualizar:

También veo $MapAttributeValue, que también parece desconocido.

usuario541686
fuente
El $representa un sistema / carpetas / archivos ocultos o administrativa. se parece a la $recycle.bincarpeta.
αғsнιη

Respuestas:

5

Actualización: investigué más este problema (ya que noté el mismo comportamiento en mi propia computadora y me preocupaba que se tratara de algún tipo de malware), y ahora creo que mi respuesta original era de hecho incorrecta. Esto es lo que encontré ahora:

  1. Se leen varios procesos diferentes de este archivo y de diferentes desplazamientos, pero con la misma longitud: 4K (exactamente una página de memoria).
  2. Hay operaciones de ReadFile, pero no se abre el archivo, lo que tiene poco sentido.
  3. Al observar el seguimiento de la pila, veo que todas las solicitudes incluyen un error de página en el seguimiento, por ejemplo, la lectura de este archivo está dentro IoPageRead(), la función del núcleo que lee las páginas del archivo de paginación en la memoria.
  4. Estas lecturas suceden en C: \ $ Directory y V: \ $ Directory en mi sistema, las dos unidades que contienen archivos de paginación y en ningún otro lugar.

Basado en esta investigación, creo firmemente que esta "lectura de archivo" es una especie de artefacto de Monitor de proceso, y la lectura real ocurre en el archivo de paginación. No tengo idea de por qué ProcMon enumera la ruta como C: \ $ Directory.

No creo ahora que este directorio C: \ $ sea un metarchivo NTFS real . No creo ahora que esto pueda ser alguna actividad ilegítima (virus u otro malware).

haimg
fuente
2
Estoy bastante seguro de que no es el # 3 o # 2. Entonces es probablemente el # 1. Aunque realmente no me dice nada ...
user541686
normalmente esto se asigna al explorer.exe. Entonces, también supongo, no es # 2 o # 3.
Diskilla
Cambié mi respuesta por completo, lo siento.
Haimg
Agregué una recompensa. Si hay documentos oficiales / no oficiales o cualquier otro hallazgo, sería genial. Es algo bastante difícil de googlear estas cosas.
Stefano Borini
4

$ Directory y $ MapAttributeValue son probablemente nombres de código para áreas del sistema en el disco NTFS , y estas referencias provienen de programas que abren o crean archivos.

Estos nombres probablemente pertenecen a los metarchivos , definidos por wikipedia como:

NTFS contiene varios archivos que definen y organizan el sistema de archivos. En todos los aspectos, la mayoría de estos archivos están estructurados como cualquier otro archivo de usuario ($ Volume es el más peculiar), pero no son de interés directo para los clientes del sistema de archivos. Estos metarchivos definen archivos, realizan copias de seguridad de los datos críticos del sistema de archivos, cambian los cambios del sistema de archivos, administran la asignación de espacio libre, satisfacen las expectativas del BIOS, rastrean las unidades de asignación incorrectas y almacenan la seguridad y el uso del espacio en disco. Todo el contenido está en una secuencia de datos sin nombre, a menos que se indique lo contrario.

$ Directory es probablemente la tabla maestra de archivos (MFT) que es el directorio para todos los archivos y carpetas, donde se almacenan como metadatos el nombre del archivo, la fecha de creación, los permisos de acceso (mediante el uso de listas de control de acceso) y el tamaño. Cualquier programa que abra o cree un archivo o carpeta accede a esta área del disco.

$ MapAttributeValue es probablemente el área de listas de atributos , descrita como:

Para cada archivo (o directorio) descrito en el registro MFT, hay un repositorio lineal de descriptores de flujo (también denominados atributos), agrupados en uno o más registros MFT (que contienen la llamada lista de atributos), con relleno adicional para llenar el fijo Tamaño de 1 KB de cada registro MFT, y eso describe completamente las transmisiones efectivas asociadas con ese archivo.

harrymc
fuente
No lo entiendo, ¿estás diciendo que $Directoryes lo mismo que $MFT? Además, las listas de atributos pertenecen a registros de archivos individuales y se almacenan dentro de los registros individuales; que no son archivos globales almacenados en la raíz del disco ...
user541686
De acuerdo, también eliminé el mío, aunque mi primer comentario sigue en pie (todavía no entiendo lo que quieres decir con frases como "la MFT que es el directorio para todos los archivos y carpetas".
User541686
1
@Mehrdad: estaba tratando de decir que todos los archivos y carpetas están definidos en él, por lo que cuando un programa abre o crea un archivo, ahí es donde el sistema operativo necesita acceder.
harrymc
1
Todavía no puedo entender tu comentario. El único archivo que tiene todos los archivos y carpetas definidos es \$MFT. No hay un metarchivo u otra ubicación en el disco nombrado \$Directory. No entiendo de qué estás hablando.
user541686
1
Sin C:\$MFTembargo, también he visto allí muchas veces. ¿Estás diciendo que ambos se refieren a la misma cosa? No veo por qué lo harían, pero está bien ...
user541686