NTFS Dosya Sistemi

NTFS Dosya Sistemi

New Technology File System anlamına gelir. FAT dosya sisteminde her bir dosya/klasör için bir cluster 36 byte’lık bilgi tutarken NTFS dosya sisteminde bu bilgiler iki dosya ile yönetilmektedir.

 

1- $MFT (Master File Table)                         2- $Bitmap

 

NTFS dosya sisteminde $ ile başlayan kayıtlar dosya sistemine ait kayıtlardır. NTFS dosya sisteminde VBR, $MFT, $MFTMirr ve $Bitmap dosyalarının nerde olduğunu bilmesi gerekir. $MTFMirr dosyası; kendisinin, $MFT’nin, $LogFile’ın ve $Volume’nin kayıtlarını tutar. Yani kendisi de dahi bu dosyaların backup dosyasıdır. Yine NTFS dosya sisteminde karşımıza çıkacak olan diğer dosya $BadClus’dır. Bu dosya hatalı ve bozuk cluster bilgilerini tutmaktadır. NTFS dosya sisteminde yer alan dosya ve özellikleri aşağıda yer alan tablo gösterilmiştir.

 

 

$Bitmap: Disk üzerinde boş yada dolu cluster’ların kaydının tutulduğu yerdir. Her cluster için 1 bit yer tutar. Eğer ki “FF” yazıyorsa bu “1111 1111” anlamına gelir ki ard arda 8 cluster’ında dolu olduğu anlamına gelir.

 

$MFT: Volume içinde oluşturulmuş olan her bir dosya/klasörün listesi $MFT içerisinde tutulur ve bu kayıtlar 1024 byte büyüklüğündedir. Şimdi 1024 byte’ın içeriğinde hangi bilgiler var bunu irdeleyelim.

 

MFT kayıtları işletim sisteminin versiyonuna göre FILE* veya FILE0 ile başlarlar. Bunlara file header denmektedir. FILE*, Windows 2000 ve öncesi versiyonların MFT başlığıdır. FILE0 ise XP ve sonrası versiyonların MFT başlığıdır. FILE* 48 byte, FILE0 56 byte’tır ve bu değerler sabittir. File header kısmı bize neyin kaydına baktığımızı gösterir. File header’ın 48/56byte’tan sonra karşımıza “10 00 00 00” yapısı gelir ve standarttır. Bunu takip eden 4 byte bize 96 byte’lık bilgi olduğunu ve attribute, meta bilgilerine ulaşabileceğimizi söyler.

 

NTFS dosya sisteminde tarih, saat 8 byte’tır. “10 00 00 00” yapısından sonraki 24byte’tan sonraki 32 byte bize tarih bilgisini verir. İlk 8 byte created time (oluşturulma tarihi), ikinci 8 byte modified time (değiştirme tarihi), üçüncü 8 byte entry modify time ve son 8 byte last Access time (son erişim tarihi) bilgisini verir. Burada geçen Entry modify kavramı bakılan dosya ile ilgili olmayıp MFT’nin değişmesiyle alakalı tarih bilgisidir. Diğerleri bakılan nesneyle alakalı bilgileri verir.

 

NTFS’de tarih/saat bilgisi UTC cinsindendir. Bu nokta önemlidir. Encase programı UTC saatini bizim bilgisayarımızdaki tarih/saat sistemine göre otomatik convert etmektedir. Yine belirtilmesi gereken konulardan biri de dosyaların son erişim tarihleri default olarak disabled tır. Bu yüzden dosyaların son erişim tarihleri değişmez. Bu kısmı değiştirmek için başlata regedit yazıp açalım. Burdan Local_Machine + system + controlset001 + control + filesystem kısmına geliriz ve «NtfsDisabledLastAccessUpdate» kısmını enabled durumuna getiririz. Bu kısmın açık olması bilgisayarı yavaşlatabilir, o yüzden default olarak kapalıdır.

 

File header’dan 22 byte’ten sonraki 2 byte’lık kısma bakacak olursa bu kısım 4 farklı değer alabilir. Bunlar; “0000”, “1000”, “2000”, “3000” dır. Little endian olarak okumamız gerekir bu yapı şu şekle döner: “0000” “0001” “0002” “0003”. Bu hale getirdikten sonra binary sayı sistemine çevirmemiz gerekir ki o zaman yapı şu hale döner:

 

 

Yapıyı bu hale getirdikten sonra yorumlama aşamasına geçebiliriz. Binary halindeki yapıda en sağda bulunan sayılar dosya/klasörün silinmiş olup olmadığının bilgisini verir ve silinmiş ise “0”, var olan ise “1”’dir. Bu sayının solunda bulunan sayılarda nesnenin dosya mı yoksa klasör mü olduğu bilgisini verir. Dosya ise “0”, klasör ise “1” değeri atanır. Bu bilgiler ışığında;

 

 

File header ve 96 byte’tan sonra karşımıza “30 00 00 00” ile başlayan big header kısmı gelir. Dosya/klasör ismi 12 karakterden fazla ise shortname’in (kısa ismi) bize gösterir. Eğer ki bu şekilde shortname kısmı varsa yani 12 karakterden fazla ise ikinci bir “30 00 00 00” yapısı ve 4 byte’lık bilgi kısmı karşımıza çıkar.

 

“30 00 00 00” yapısından sonra yine 8+8+8+8 olan 32 byte’lık bilgi paketi çıkar ve dosya tarihiyle ilgili bilgiler sunar. Eğer ki bir şahsın dosyanın zamanlarıyla oynadığını düşünüyorsak yukarıdaki anlattığımız tarih bilgileriyle karşılaştırma yaparak sağlama yapabiliriz.

 

“80 00 00 00” yapısı dosyaların content (içerik) bilgilerini gösterir. 56byte (Fileheader) +96byte+30 00 00 00 (shortname) + 30 00 00 00 (longname) işlemlerinden sonra 80 00 00 00 işlemleri için ayrılan alan dosyanın boyutundan büyük ise ekstradan cluster ayrılmaz ve bu boş alana dosyanın content’i yazılır. Bu tür dosyalara resident dosyalar, MFT’si ile aynı cluster’da olmayan dosyalara ise nonresident dosyalar denilmektedir. Genelde boyutu 600 byte’ten daha küçük dosyalar resident file olarak adlandırılır.

 

Klasörler için longname header’dan sonra index root yani içerik bilgisi için 90 00 00 00 yapısı gelir. 80 00 00 00 yapısı dosyalara has bir özelliktir. Klasörlerde olmaz. NTFS dosya sisteminde her bir klasör sadece bir MFT kaydıdır. Klasör için ayrı bir cluster ayrılmaz. FAT dosya sisteminde ise her bir dosya ve klasör için ayrı cluster tahsis edilmekteydi.

Paylaş: