Che cos'è C: \ $ Directory?


11

Quando eseguo Process Monitor , vedo le ReadFilerichieste inviate a C:\$Directory.

Cosa significa esattamente?


Aggiornare:

Vedo anche $MapAttributeValueche sembra non avere familiarità.


La $rappresenta un / file nascosto o amministrativa / cartella di sistema. sembra una $recycle.bincartella.
αғsнιη,

Risposte:


5

Aggiornamento: ho studiato ulteriormente questo problema (poiché ho notato lo stesso comportamento sul mio computer ed ero preoccupato che si trattasse di un qualche tipo di malware), e ora credo che la mia risposta originale fosse in realtà errata. Ecco cosa ho trovato ora:

  1. Diverse processioni diverse vengono lette da questo file e da offset diversi, ma con la stessa lunghezza: 4K (esattamente una pagina di memoria).
  2. Ci sono operazioni ReadFile, ma nessuna apertura del file, il che ha poco senso.
  3. Osservando la traccia dello stack, vedo che tutte le richieste includono un errore di pagina nella traccia, ad esempio questo file letto è all'interno IoPageRead(), funzione del kernel che legge le pagine dal file di paging in memoria.
  4. Queste letture avvengono su C: \ $ Directory e V: \ $ Directory sul mio sistema, le due unità che contengono file di paging su di esse e da nessun'altra parte.

Sulla base di questa ricerca, credo fermamente che questo "file read" sia una sorta di artefatto di Process Monitor e che la lettura reale avvenga nel file di paging. Non ho idea del perché ProcMon elenchi il percorso come directory C: \ $.

Non penso ora che questa directory C: \ $ sia un vero metafile NTFS . Non penso ora che questa potrebbe essere un'attività illegittima (virus o altro malware).


2
Sono abbastanza sicuro che non sia # 3 o # 2. Quindi è probabilmente il numero 1. In realtà non mi dice nulla ...
Mehrdad,

normalmente questo è assegnato a explorer.exe. Quindi, immagino anche che non sia # 2 o # 3.
Diskilla,

Ho cambiato completamente la mia risposta, scusa.
Haimg

Ho aggiunto una taglia. Se ci sono documenti ufficiali / non ufficiali o altri risultati, sarebbe fantastico. È qualcosa di piuttosto difficile google questa roba.
Stefano Borini,

4

$ Directory e $ MapAttributeValue sono probabilmente nomi in codice per aree di sistema sul disco NTFS e questi riferimenti provengono da programmi che aprono o creano file.

Questi nomi probabilmente appartengono a Metafile , definiti da Wikipedia come:

NTFS contiene diversi file che definiscono e organizzano il file system. Sotto tutti gli aspetti, la maggior parte di questi file sono strutturati come qualsiasi altro file utente ($ Volume è il più singolare), ma non sono di interesse diretto per i client del file system. Questi metafile definiscono i file, eseguono il backup dei dati critici del file system, modificano i buffer del file system, gestiscono l'allocazione dello spazio libero, soddisfano le aspettative del BIOS, tengono traccia delle unità di allocazione errate e memorizzano le informazioni sulla sicurezza e sull'utilizzo dello spazio su disco. Tutto il contenuto si trova in un flusso di dati senza nome, se non diversamente indicato.

$ Directory è molto probabilmente la Master File Table (MFT) che è la directory per tutti i file e le cartelle, dove sono memorizzati come metadati il ​​nome del file, la data di creazione, le autorizzazioni di accesso (mediante l'uso di liste di controllo degli accessi) e le dimensioni. Qualsiasi programma che apre o crea un file o una cartella accede a quest'area del disco.

$ MapAttributeValue è molto probabilmente l' area degli elenchi di attributi , descritta come:

Per ogni file (o directory) descritto nel record MFT, esiste un repository lineare di descrittori di stream (anche denominati attributi), impacchettati in uno o più record MFT (contenenti il ​​cosiddetto elenco di attributi), con imbottitura aggiuntiva per riempire il fixed 1 KB di dimensione per ogni record MFT e che descrive in modo completo i flussi effettivi associati a quel file.


Non capisco, stai dicendo che $Directoryè lo stesso di $MFT? Inoltre, gli elenchi di attributi appartengono a singoli record di file e sono memorizzati all'interno dei singoli record; non sono file globali archiviati nella radice del disco ...
Mehrdad,

Va bene ho cancellato anche il mio, anche se il mio primo commento è ancora valido (non capisco ancora cosa intendi con frasi come "la MFT che è la directory per tutti i file e le cartelle".
Mehrdad,

1
@Mehrdad: stavo cercando di dire che tutti i file e le cartelle sono definiti in esso, quindi quando un programma si apre o crea un file, è lì che il sistema operativo deve accedere.
harrymc,

1
Non riesco ancora a dare un senso al tuo commento. L'unico file in cui sono definiti tutti i file e le cartelle \$MFT. Non esiste metafile o altra posizione sul disco denominato \$Directory. Non capisco di cosa stai parlando.
Mehrdad,

1
Ho visto C:\$MFTelencato anche lì un sacco di volte, però. Stai dicendo che entrambi si riferiscono alla stessa cosa? Non vedo perché lo farebbero ma ok ...
Mehrdad,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.