Was ist C: \ $ -Verzeichnis?

2808
Mehrdad

Wenn ich Process Monitor starte, werden ReadFileAnforderungen angezeigt C:\$Directory.

Was heißt das genau?


Aktualisieren:

Ich sehe auch $MapAttributeValue, was auch ungewohnt aussieht.

10
Das $ steht für einen versteckten oder administrativen Ordner / eine Datei. Sieht aus wie der Ordner "$ recycle.bin". αғsнιη vor 9 Jahren 0

2 Antworten auf die Frage

5
haimg

Update: Ich habe dieses Problem weiter untersucht (da ich auf meinem eigenen Computer dasselbe Verhalten festgestellt habe und mir Sorgen machte, dass es sich um eine Art Malware handelt), und jetzt glaube ich, dass meine ursprüngliche Antwort tatsächlich falsch war. Folgendes habe ich jetzt gefunden:

  1. Mehrere verschiedene Prozesse lesen aus dieser Datei und aus unterschiedlichen Offsets, jedoch mit derselben Länge: 4 KB (genau eine Speicherseite).
  2. Es gibt ReadFile-Operationen, aber kein Öffnen der Datei, was wenig Sinn macht.
  3. Wenn ich mir die Stack-Ablaufverfolgung anschaue, sehe ich, dass alle Anforderungen einen Seitenfehler in der Ablaufverfolgung enthalten, z. B. ist diese Datei innerhalb einer IoPageRead()Kernel-Funktion enthalten, die Seiten aus der Auslagerungsdatei in den Speicher liest.
  4. Diese Lesevorgänge finden in C: \ $ Directory und V: \ $ Directory auf meinem System statt, auf den beiden Laufwerken, auf denen Auslagerungsdateien gespeichert sind, und sonst nirgendwo.

Basierend auf diesen Untersuchungen bin ich fest davon überzeugt, dass dieses "Lesen von Dateien" eine Art Prozessmonitor-Artefakt ist und das eigentliche Lesen in der Auslagerungsdatei stattfindet. Ich habe keine Ahnung, warum ProcMon den Pfad als C: \ $ Directory aufführt.

Ich denke jetzt nicht, dass dieses C: \ $ Directory eine echte NTFS-Metadatei ist . Ich glaube jetzt nicht, dass dies eine unzulässige Aktivität sein könnte (Viren oder andere Malware).

Ich bin mir ziemlich sicher, dass es nicht # 3 oder # 2 ist. Also ist es wahrscheinlich # 1. Es sagt mir aber nicht wirklich etwas ... Mehrdad vor 12 Jahren 2
Normalerweise wird dies der explorer.exe zugewiesen. Ich denke auch, dass es nicht # 2 oder # 3 ist. Diskilla vor 12 Jahren 0
Ich habe meine Antwort komplett geändert, sorry. haimg vor 12 Jahren 0
Ich habe eine Belohnung hinzugefügt. Wenn es offizielle oder inoffizielle Dokumente oder andere Feststellungen gibt, wäre dies großartig. Es ist etwas ziemlich schwer, dieses Zeug zu googeln. Stefano Borini vor 9 Jahren 0
4
harrymc

$ Directory und $ MapAttributeValue sind höchstwahrscheinlich Code-Namen für Systembereiche auf der NTFS- Platte, und diese Verweise stammen von Programmen, die Dateien öffnen oder erstellen.

Diese Namen beziehen sich wahrscheinlich auf Metafiles, die von Wikipedia als definiert werden:

NTFS enthält mehrere Dateien, die das Dateisystem definieren und organisieren. Die meisten dieser Dateien sind in jeder Hinsicht wie jede andere Benutzerdatei strukturiert ($ Volume ist die eigentümlichste), sind aber für Dateisystemclients nicht direkt von Interesse. Diese Metadateien definieren Dateien, sichern wichtige Dateisystemdaten, puffern Dateisystemänderungen, verwalten freien Speicherplatz, erfüllen die BIOS-Erwartungen, verfolgen fehlerhafte Zuordnungseinheiten und speichern Informationen zur Sicherheit und zum Speicherplatz. Der gesamte Inhalt befindet sich in einem unbenannten Datenstrom, sofern nicht anders angegeben.

$ Directory ist höchstwahrscheinlich die Master File Table (MFT), dh das Verzeichnis für alle Dateien und Ordner, in denen als Metadaten Dateiname, Erstellungsdatum, Zugriffsberechtigungen (durch Verwendung von Zugriffssteuerungslisten) und Größe gespeichert werden. Jedes Programm, das eine Datei oder einen Ordner öffnet oder erstellt, greift auf diesen Bereich der Festplatte zu.

$ MapAttributeValue ist höchstwahrscheinlich der Bereich Attributlisten, der wie folgt beschrieben wird:

Für jede im MFT-Datensatz beschriebene Datei (oder jedes Verzeichnis) gibt es ein lineares Repository mit Stream-Deskriptoren (auch benannten Attributen), die in einem oder mehreren MFT-Records (die sogenannte Attributliste enthalten) gepackt sind, wobei das Auffüllen mit zusätzlichen Auffüllungen gefüllt wird 1 KB Größe jedes MFT-Datensatzes, und dies beschreibt vollständig die effektiven Streams, die dieser Datei zugeordnet sind.

Ich verstehe es nicht, Sie sagen, "$ Directory" ist dasselbe wie "$ MFT"? Attributlisten gehören auch zu einzelnen Dateisätzen und werden in den einzelnen Datensätzen gespeichert. Sie sind keine globalen Dateien, die im Stammverzeichnis der Festplatte gespeichert sind ... Mehrdad vor 9 Jahren 0
Okay, ich habe auch meine gelöscht, obwohl mein erster Kommentar immer noch steht (ich verstehe immer noch nicht, was Sie mit Ausdrücken wie "die MFT", dh das Verzeichnis für alle Dateien und Ordner) meinen. Mehrdad vor 9 Jahren 0
@Mehrdad: Ich habe versucht zu sagen, dass alle Dateien und Ordner darin definiert sind. Wenn also ein Programm eine Datei öffnet oder erstellt, muss das Betriebssystem darauf zugreifen. harrymc vor 9 Jahren 1
Ich kann deinen Kommentar immer noch nicht verstehen. Die einzige Datei, in der * alle * Dateien und Ordner definiert sind, ist `\ $ MFT`. Auf der Festplatte befindet sich keine Metadatei oder ein anderer Speicherort mit dem Namen `\ $ Directory`. Ich verstehe nicht, wovon du sprichst. Mehrdad vor 9 Jahren 0
@Mehrdad: MFT = $ MFT. Das Wort "Verzeichnis" im Text ist Teil der Beschreibung von MFT, nicht der Name. harrymc vor 9 Jahren 0
Ich habe aber auch schon oft `C: \ $ MFT` gesehen. Sagen Sie, dass sich beide auf dasselbe beziehen? Ich verstehe nicht, warum sie doch in Ordnung wären ... Mehrdad vor 9 Jahren 0