[ Pobierz całość w formacie PDF ]
.llDziennik zmian (Change Log).Zapewnia aplikacjom indeksującym tablicę MFT szybkie uaktualnienie indeksów bez powtórnego przeszukiwania całej tablicy.Usługa ta korzysta z nowego rekordu metadanych, $UsnJrnl.llSystem plików zaszyfrowanych (Encrypted File System).Umożliwia szyfrowanie plików w taki sposób, że tylko użytkownik, który je zaszyfrował może je odczytać.Usługa ta korzysta z nowego atrybutu MFT, $Logged_Utility_Streams.Szczegółowe informacje zawarto w rozdziale 15.Pierwsze cztery usługi omówiono w poniższym rozdziale.System plików zaszyfrowanych jest opisany w rozdziale 14.lSzczegółowy opis działania systemu plików NTFSMFT jest obiektową bazą danych.Obiekty wywodzą się z klas, które zawierają pewne atrybuty.Na przykład rekord pliku zawiera atrybut $Data, a rekord katalogu zawiera atrybut $Index_Root.Wszystkie atrybuty mają dwie części składowe: nagłówek i blok danych.Nagłówek zawiera informacje opisujące ten atrybut, takie jak całkowita liczba bajtów zajmowanych przez atrybut, liczba bajtów przypadająca na każdą z części, przesunięcie liczone od początku atrybutu określające położenie bloku danych, znacznik czasu, wskaźniki stanu itp.W bloku danych atrybutu zapisane są informacje zgodne z przeznaczeniem tego atrybutu.Na przykład blok danych atrybutu $File_Name zawiera nazwę pliku.Poniżej przedstawiono wydruk zawartości atrybutu $File_Name pliku o nazwie FileName.txt.<<Wydruk atrybutu $File_Name przedstawiający jego budowę.Blok danych zaznaczono czcionkąpogrubioną.>>30 00 00 00 78 00 00 00 00 00 00 00 00 00 02 00 0.x.5A 00 00 00 18 00 01 00 05 00 00 00 00 00 05 00.F0 98 70 DB 6A BF BE 01 F0 98 70 DB 6A BF BE 01.p.j.p.j.F0 98 70 DB 6A BF BE 01 F0 98 70 DB 6A BF BE 01.p.j.p.j.00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.20 00 00 00 00 00 00 00 0C 03 46 00 69 00 6C 00.F.i.l.65 00 4E 00 61 00 6D 00 65 00 2E 00 74 00 78 00 e.N.a.m.e.t.x.74 00 00 00 00 00 00 00 t.Budowa nagłówka atrybutu jest jednakowa dla wszystkich typów atrybutów.Nagłówek zawiera:lPierwsze 4 bajty (30 00 00 00 w powyższym przykładzie) przedstawiają kod typu atrybutu.Pamiętać należy, że bajty zapisane są od najmłodszego do najstarszego i w celu odczytania typu trzeba odwrócić ich kolejność, co w tym przypadku daje kod typu równy 30, wskazując na atrybut $File_Name.System używa kodów typu zamiast nazw, więc atrybuty mogą być posortowane w rekordzie.Pierwszymi atrybutami są te z niższymi kodami typu.Taka zasada powoduje, że niepotrzebne są specjalne rekordy metadanych określające struktury rekordu.llNastępne 4 bajty (78 00 00 00) pokazują rozmiar atrybutu, razem z nagłówkiem, wyrażony w bajtach (120 bajtów).llKolejne 8 bajtów są to bajty rezerwowe.llNastępne 4 bajty (54 00 00 00) pokazują rozmiar bloku danych atrybutu, wyrażony w bajtach (90 bajtów).llW kolejnych dwóch bajtach (18 00) zapisane jest przesunięcie (offset) początku bloku danych w stosunku do początku nagłówka (24 bajty).llNastępne 10 bajtów zawiera specjalne znaczniki i atrybuty.llW kolejnych 32 bajtach zapisany jest znacznik czasu.llKońcowe 26 bajtów zawiera informacje o lokalizacji, właściwe dla tego atrybutu.lAtrybut nie musi być zapisany całkowicie w rekordzie MFT.Na przykład atrybut $Data rzadko mieści się w rekordzie, który ma rozmiar 1 kB.Jeśli atrybut staje się zbyt duży, system plików pozostawia w rekordzie nagłówek, a blok danych przenosi na dysk poza MFT, pozostawiając wskaźnik pozwalający na lokalizację tego bloku.Taki atrybut nosi nazwę nierezydentnego (nonresident).Niektóre atrybuty muszą pozostać rezydentne ze względu na działanie systemu plików.Takie atrybuty są oznaczone w rekordzie metadanych $AttrDef.System plików, przenosząc blok danych atrybutu poza MFT, stara się zapisać dane w przyległych jednostkach alokacji, tzw.ciąg (run).Jest to łatwe, o ile wolumin ma dużo wolnej przestrzeni, ale jeśli robi się ciasno i dostępne jednostki alokacji są rozrzucone na całym obszarze dysku, nie ma możliwości zapisania danych w spójnym, ciągłym obszarze kilku jednostek alokacji (jeden ciąg).W tym przypadku dochodzi do fragmentacji pliku i zapisania danych w kilku ciągach jednostek alokacji.Każdemu ciągowi jednostek alokacji odpowiada wskaźnik w rekordzie MFT.Ten wskaźnik składa się z trzech elementów:lPoczątkowy numer logicznej jednostki alokacji (Logical Cluster Number — LCN).Każda jednostka alokacji ma nadany 64-bitowy numer kolejny tzw.LCN.llPoczątkowy numer wirtualnej jednostki alokacji (Virtual Cluster Number — VCN).Pojedyncza jednostka alokacji w ciągu jest identyfikowana poprzez numer względny tzw.VCN.Jeśli plik jest zapisany w kilku ciągach jednostek alokacji, to wskaźnik do każdego ciągu zawiera VCN pierwszej jednostki alokacji w tym ciągu.llLiczba jednostek alokacji.Liczba jednostek alokacji w tym ciągu.lPołączenie LCN i VCN we wskaźniku ciągu jednostek alokacji bardzo ułatwia znalezienie określonego bajta w pliku [ Pobierz całość w formacie PDF ]
zanotowane.pl doc.pisz.pl pdf.pisz.pl matkasanepid.xlx.pl
.llDziennik zmian (Change Log).Zapewnia aplikacjom indeksującym tablicę MFT szybkie uaktualnienie indeksów bez powtórnego przeszukiwania całej tablicy.Usługa ta korzysta z nowego rekordu metadanych, $UsnJrnl.llSystem plików zaszyfrowanych (Encrypted File System).Umożliwia szyfrowanie plików w taki sposób, że tylko użytkownik, który je zaszyfrował może je odczytać.Usługa ta korzysta z nowego atrybutu MFT, $Logged_Utility_Streams.Szczegółowe informacje zawarto w rozdziale 15.Pierwsze cztery usługi omówiono w poniższym rozdziale.System plików zaszyfrowanych jest opisany w rozdziale 14.lSzczegółowy opis działania systemu plików NTFSMFT jest obiektową bazą danych.Obiekty wywodzą się z klas, które zawierają pewne atrybuty.Na przykład rekord pliku zawiera atrybut $Data, a rekord katalogu zawiera atrybut $Index_Root.Wszystkie atrybuty mają dwie części składowe: nagłówek i blok danych.Nagłówek zawiera informacje opisujące ten atrybut, takie jak całkowita liczba bajtów zajmowanych przez atrybut, liczba bajtów przypadająca na każdą z części, przesunięcie liczone od początku atrybutu określające położenie bloku danych, znacznik czasu, wskaźniki stanu itp.W bloku danych atrybutu zapisane są informacje zgodne z przeznaczeniem tego atrybutu.Na przykład blok danych atrybutu $File_Name zawiera nazwę pliku.Poniżej przedstawiono wydruk zawartości atrybutu $File_Name pliku o nazwie FileName.txt.<<Wydruk atrybutu $File_Name przedstawiający jego budowę.Blok danych zaznaczono czcionkąpogrubioną.>>30 00 00 00 78 00 00 00 00 00 00 00 00 00 02 00 0.x.5A 00 00 00 18 00 01 00 05 00 00 00 00 00 05 00.F0 98 70 DB 6A BF BE 01 F0 98 70 DB 6A BF BE 01.p.j.p.j.F0 98 70 DB 6A BF BE 01 F0 98 70 DB 6A BF BE 01.p.j.p.j.00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.20 00 00 00 00 00 00 00 0C 03 46 00 69 00 6C 00.F.i.l.65 00 4E 00 61 00 6D 00 65 00 2E 00 74 00 78 00 e.N.a.m.e.t.x.74 00 00 00 00 00 00 00 t.Budowa nagłówka atrybutu jest jednakowa dla wszystkich typów atrybutów.Nagłówek zawiera:lPierwsze 4 bajty (30 00 00 00 w powyższym przykładzie) przedstawiają kod typu atrybutu.Pamiętać należy, że bajty zapisane są od najmłodszego do najstarszego i w celu odczytania typu trzeba odwrócić ich kolejność, co w tym przypadku daje kod typu równy 30, wskazując na atrybut $File_Name.System używa kodów typu zamiast nazw, więc atrybuty mogą być posortowane w rekordzie.Pierwszymi atrybutami są te z niższymi kodami typu.Taka zasada powoduje, że niepotrzebne są specjalne rekordy metadanych określające struktury rekordu.llNastępne 4 bajty (78 00 00 00) pokazują rozmiar atrybutu, razem z nagłówkiem, wyrażony w bajtach (120 bajtów).llKolejne 8 bajtów są to bajty rezerwowe.llNastępne 4 bajty (54 00 00 00) pokazują rozmiar bloku danych atrybutu, wyrażony w bajtach (90 bajtów).llW kolejnych dwóch bajtach (18 00) zapisane jest przesunięcie (offset) początku bloku danych w stosunku do początku nagłówka (24 bajty).llNastępne 10 bajtów zawiera specjalne znaczniki i atrybuty.llW kolejnych 32 bajtach zapisany jest znacznik czasu.llKońcowe 26 bajtów zawiera informacje o lokalizacji, właściwe dla tego atrybutu.lAtrybut nie musi być zapisany całkowicie w rekordzie MFT.Na przykład atrybut $Data rzadko mieści się w rekordzie, który ma rozmiar 1 kB.Jeśli atrybut staje się zbyt duży, system plików pozostawia w rekordzie nagłówek, a blok danych przenosi na dysk poza MFT, pozostawiając wskaźnik pozwalający na lokalizację tego bloku.Taki atrybut nosi nazwę nierezydentnego (nonresident).Niektóre atrybuty muszą pozostać rezydentne ze względu na działanie systemu plików.Takie atrybuty są oznaczone w rekordzie metadanych $AttrDef.System plików, przenosząc blok danych atrybutu poza MFT, stara się zapisać dane w przyległych jednostkach alokacji, tzw.ciąg (run).Jest to łatwe, o ile wolumin ma dużo wolnej przestrzeni, ale jeśli robi się ciasno i dostępne jednostki alokacji są rozrzucone na całym obszarze dysku, nie ma możliwości zapisania danych w spójnym, ciągłym obszarze kilku jednostek alokacji (jeden ciąg).W tym przypadku dochodzi do fragmentacji pliku i zapisania danych w kilku ciągach jednostek alokacji.Każdemu ciągowi jednostek alokacji odpowiada wskaźnik w rekordzie MFT.Ten wskaźnik składa się z trzech elementów:lPoczątkowy numer logicznej jednostki alokacji (Logical Cluster Number — LCN).Każda jednostka alokacji ma nadany 64-bitowy numer kolejny tzw.LCN.llPoczątkowy numer wirtualnej jednostki alokacji (Virtual Cluster Number — VCN).Pojedyncza jednostka alokacji w ciągu jest identyfikowana poprzez numer względny tzw.VCN.Jeśli plik jest zapisany w kilku ciągach jednostek alokacji, to wskaźnik do każdego ciągu zawiera VCN pierwszej jednostki alokacji w tym ciągu.llLiczba jednostek alokacji.Liczba jednostek alokacji w tym ciągu.lPołączenie LCN i VCN we wskaźniku ciągu jednostek alokacji bardzo ułatwia znalezienie określonego bajta w pliku [ Pobierz całość w formacie PDF ]