eCDFP Module (5) File System Analysis (Part-9) (NTFS File System Analysis)

 NTFS Attributes 

အခုဆက်ပြီးဖော်ပြမှာက MFT Entry မှာပါဝင်တဲ့ Attributes တွေအကြောင်းနဲ့ Attributes Structure အကြောင်းဖြစ်ပါတယ်။ Attributes တွေက MFT Entry ထဲမှာ မတူညီတဲ့ အချက်အလက်တွေကို သိမ်းဆည်းထားပါတယ်။ ဥပမာ (File Name, Time Stamps, Content, Etc … ) MFT Entry မှာပါတဲ့ Attributes တွေမှာ တူညီတဲ့ Header Data Structure ရှိပါတယ်။  Attributes တိုင်းမှာ Header, Content ဆိုပြီး အပိုင်း (၂) ပိုင်းပါဝင်ပါတယ်။ 





Attributes တွေက Resident Attributes သို့မဟုတ် Non-Resident Attributes ဆိုပြီး (၂) မျိုးရှိနိုင်ပါတယ်။ Attributes တိုင်းရဲ့ Header Data Structure တွေတူညီပေမဲ့ Data Content Structure ပိုင်းကတော့ မတူညီပါဘူး။  Non-Resident မှာ Cluster Running တွေပါဝင်ပါတယ်။ 

Resident Attribute and Non-Resident Attribute 

တစ်ကယ်လို့ File တစ်ခုရဲ့ Data Size က  700 Bytes ထက်နည်းမယ်ဆိုရင် Attribute က Resident Attribute ဖြစ်ပါမယ်။ File Data Size က 700 Bytes ထက်ကြီးမယ်ဆိုရင်တော့ Non-Resident Attribute ဖြစ်ပါမယ်။ 

Resident Attribute  မှာ Attribute မှာပါတဲ့ Header နဲ့ Header Content က တစ်ဆက်တည်းဖြစ်ပါတယ်။  ဥပမာ။ $FILENAME, $STANDARD_INFORMATION

Non-Resident Attribute မှာပါတဲ့ Content တွေက Storage ရဲ့ Cluster တွေပေါ်မှာ ပြန့်ကျဲပြီး တည်ရှိနေပါတယ်။ MFT Entry Record ထဲမှာ Content တွေကမပါဝင်ပါဘူး။ ဥပမာ။ $DATA Attributes ဖြစ်ပါတယ်။ Attributes တစ်ခုဖြစ်တဲ့ $ATTRIBUTES _LIST က $DATA Attributes ထဲမှာပါတာကို Track လုပ်ပါတယ်။ 

Resident Attributes နဲ့ Non-Resident Attributes တို့က Data Content Structure ပိုင်းမှာ မတူညီပေမဲ့ အပေါ်မှာပြောခဲ့သလိုပဲ Header Data Structure (16 Bytes) အပိုင်းမှာတူညီပါတယ်။ 



Data Structure First (16 Bytes) Of An Attributes 

Attributes Type Identifier 

Attributes Type Identifier က 4 Bytes နေရာယူထားပါတယ်။  

(0x10) ဆိုတာက  Attributes Type ကိုပြောတာဖြစ်ပါတယ်။ 



Length Of Attribute

Length Of Attribute က (4 Bytes) နေရာယူပါတယ်။

Attribute ရဲ့  Length ကိုပြောတာဖြစ်ပါတယ်။

Length Of Attribute ထဲမှာ Attribute ရဲ့ Header Length ပါ ပါဝင်ပါတယ်။

အခုပုံမှာဆိုရင် Attribute ရဲ့ Length က (0x60) =  96  ဖြစ်ပါတယ်။ အနီရောင်နဲ့ ၀ိုင်းပြထားပါတယ်။





Non-Resident Flag 

Non-Resident Flag က 1 Byte နေရာယူပါတယ်။

Attribute က Resident (OR)  Non-Resident လားဆိုတာကကို Flag ကညွှန်ပြပေးပါတယ်။

 Non-Resident Flag (0) ဖြစ်တယ်ဆိုရင် Resident Attribute ဖြစ်ပါတယ်။

 Non-Resident Flag  (1) ဖြစ်တယ်ဆိုရင် Non-Resident ဖြစ်ပါတယ်။

ပုံမှာ 0 ဖြစ်တဲ့အတွက် Resident Attribute ဖြစ်ပါတယ်။



Length Of  The Attribute Name =  ( 1 byte) နေရာယူမယ်။

Offset To The Attribute  Name = (2 Bytes) နေရာယူမယ်။  



Flag 

0x0001 = Compressed

0x4000 = Encrypted

0x8000 = Sparse 




Attribute Identifier 

Attributes တစ်ခုစီမှာ သူတို့အတွက် သတ်မှတ်ထားတဲ့ ID တွေရှိပါတယ်။ 

Attributes တစ်ခုနဲ့တစ်ခု ခွဲခြားနိုင်ဖို့အတွက် အသုံးပြုတဲ့ ID ဖြစ်ပါတယ်။ 

ဒါကို MFT Entry မှာတွေ့နိုင်ပါတယ်။ 

Example 

Attributes #10 = ID (0) 

Attributes #30 = ID (2) 

Attributes #80 = ID (1) 




Comments

Popular posts from this blog

B-Trees (NTFS)

NTFS Index Attributes

Volatility Workbench (GUI) for the Volatility tool