Co to jest katalog C: \ $?

11

Kiedy uruchamiam Process Monitor , widzę ReadFileżądania wysłane do C:\$Directory.

Co to dokładnie znaczy?


Aktualizacja:

Rozumiem również $MapAttributeValue, co również wygląda nieznanie.

użytkownik541686
źródło
$Reprezentuje ukryty lub administracyjnego systemu / folder / plik. wygląda jak $recycle.binfolder.
αғsнιη

Odpowiedzi:

5

Aktualizacja: dalej badałem ten problem (ponieważ zauważyłem to samo zachowanie na własnym komputerze i martwiłem się, że jest to jakiś rodzaj złośliwego oprogramowania), a teraz uważam, że moja pierwotna odpowiedź była w rzeczywistości nieprawidłowa. Oto, co znalazłem teraz:

  1. Kilka różnych procesów odczytanych z tego pliku i z różnych przesunięć, ale o tej samej długości: 4K (dokładnie jedna strona pamięci).
  2. Istnieją operacje ReadFile, ale brak otwierania pliku, co nie ma większego sensu.
  3. Patrząc na ślad stosu, widzę, że wszystkie żądania zawierają błąd strony w śledzeniu, np. Ten plik jest w środku IoPageRead(), funkcja jądra, która odczytuje strony z pliku stronicowania do pamięci.
  4. Te odczyty mają miejsce w katalogu C: \ $ Directory i V: \ $ Directory w moim systemie, na dwóch dyskach, na których są przechowywane pliki stronicowania, i nigdzie indziej.

Na podstawie tych badań mocno wierzę, że ten „odczyt pliku” jest pewnego rodzaju artefaktem Monitora Procesu, a prawdziwy odczyt odbywa się w pliku stronicowania. Nie mam pojęcia, dlaczego ProcMon podaje ścieżkę jako katalog C: \ $.

Nie sądzę, że ten katalog C: \ $ jest prawdziwym metaplikiem NTFS . Nie sądzę, że może to być nielegalna aktywność (wirus lub inne złośliwe oprogramowanie).

haimg
źródło
2
Jestem prawie pewien, że to nie # 3 ani # 2. Więc to prawdopodobnie numer 1. Jednak tak naprawdę nic mi to nie mówi ...
user541686,
zwykle jest to przypisywane do explorer.exe. Sądzę też, że nie jest to # 2 ani # 3.
Diskilla,
Przepraszam, całkowicie zmieniłem odpowiedź.
haimg 12.11.11
Dodałem nagrodę. Jeśli są jakieś oficjalne / nieoficjalne dokumenty lub jakiekolwiek inne ustalenia, byłoby świetnie. Coś takiego trudno jest znaleźć w Google.
Stefano Borini,
4

$ Directory i $ MapAttributeValue to najprawdopodobniej nazwy kodowe obszarów systemowych na dysku NTFS , a odniesienia te pochodzą z programów otwierających lub tworzących pliki.

Te nazwy prawdopodobnie dotyczą Metafiles , zdefiniowanych przez wikipedia jako:

NTFS zawiera kilka plików, które definiują i organizują system plików. Pod każdym względem większość tych plików ma strukturę podobną do każdego innego pliku użytkownika (najbardziej osobliwy jest $ Volume), ale nie są one bezpośrednio interesujące dla klientów systemu plików. Te metapliki definiują pliki, wykonują kopię zapasową krytycznych danych systemu plików, zmieniają bufor systemu plików, zarządzają przydziałem wolnego miejsca, spełniają oczekiwania systemu BIOS, śledzą nieprawidłowe jednostki alokacji oraz przechowują informacje o bezpieczeństwie i wykorzystaniu miejsca na dysku. Cała zawartość znajduje się w nienazwanym strumieniu danych, chyba że zaznaczono inaczej.

$ Directory to najprawdopodobniej główna tabela plików (MFT), która jest katalogiem dla wszystkich plików i folderów, w których przechowywane są jako metadane nazwa pliku, data utworzenia, uprawnienia dostępu (przy użyciu list kontroli dostępu) i rozmiar. Każdy program, który otwiera lub tworzy plik lub folder, uzyskuje dostęp do tego obszaru dysku.

$ MapAttributeValue to najprawdopodobniej obszar Listy atrybutów , opisany jako:

Dla każdego pliku (lub katalogu) opisanego w rekordzie MFT istnieje liniowe repozytorium deskryptorów strumienia (zwanych także atrybutami), spakowane razem w jeden lub więcej rekordów MFT (zawierających tak zwaną listę atrybutów), z dodatkowym dopełnieniem do wypełnienia ustalonego Rozmiar 1 KB każdego rekordu MFT i to w pełni opisuje efektywne strumienie powiązane z tym plikiem.

harrymc
źródło
Nie rozumiem, mówisz, że $Directoryto to samo co $MFT? Ponadto listy atrybutów należą do poszczególnych rekordów plików i są przechowywane w poszczególnych rekordach; nie są to pliki globalne przechowywane w katalogu głównym dysku ...
user541686
Okej, ja też usunąłem mój, chociaż mój pierwszy komentarz nadal jest ważny (nadal nie rozumiem, co masz na myśli przez wyrażenia takie jak „MFT, czyli katalog dla wszystkich plików i folderów”.
541686,
1
@ Mehrdad: Próbowałem powiedzieć, że wszystkie pliki i foldery są w nim zdefiniowane, więc kiedy program otwiera lub tworzy plik, tam system operacyjny musi uzyskać dostęp.
harrymc
1
Nadal nie rozumiem twojego komentarza. Jedynym plikiem, w którym są zdefiniowane wszystkie pliki i foldery, jest \$MFT. Na dysku nie ma metapliku ani innej lokalizacji \$Directory. Nie rozumiem o czym mówisz.
user541686
1
C:\$MFTJednak widziałem tam również wiele razy. Czy mówisz, że oba odnoszą się do tej samej rzeczy? Nie rozumiem, dlaczego mieliby tak dobrze ...
user541686