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

 Volume Boot Record  (VBR) ($Boot)

 Disk Editor မသုံးပဲ ကြည့်နိုင်အောင်ရေးသားထားပါသည်။ But practice makes perfect...

 

Volume Boot Record (VBR) ကို Volume Boot Sector,  Partition Boot Record , Partition Boot Sector ဆိုပြီး အမျိုးမျိုးခေါ်ကြပါတယ်။ ကျွန်တော်တို့ NTFS File System Analysis ကို Volume Boot Record  (VBR) ($Boot)နဲ့ ပထမဦးဆုံး စတင်ပါမယ်။ VBR က MFT ရဲ့ Record (Entry) နံပတ် 7 မှာရှိပါတယ်။ အပေါ်ကပုံမှာဆိုရင် NTLDR က Boot.ini ကနေ Boot Partition (Example C:) ကိုညွန်ပြပါတယ်။ NTFS.sys ကတော့ Window ကနေ NTFS File  System ပေါ်ကို Data တွေRead, Write လုပ်ဖို့အတွက်အသုံးပြုပါတယ်။  NTFS.sys နဲ့ ntoskrnl.exe တို့ Error တက်ရင် Blue Screen  Error တက်ပါတယ်။ NTFS File System ရဲ့ Metadata File ဖြစ်တဲ့ ($Boot)  ကတော့ Master File Table (MFT) က ဘယ်နေရာမှာရှိတယ်ဆိုတာကို မှတ်သားထားပါတယ်။ MFT က File တစ်ခုဖြစ်တဲ့အတွက် Storage ရဲ့မည်သည့် နေရာမှာမဆိုရှိနိုင်ပါတယ်။ Storage Area ရဲ့  Sector ဘယ်လောက်မှာရှိရမယ် Cluster ဘယ်လောက် မှာရှိရမယ်ဆိုပြီး သတ်မှတ်ထား တာမရှိပါဘူး။ ($Boot)  က MFT ဘယ်နေရာမှာ ရှိတယ်ဆိုတာကိုညွှန်ပြပြီး ($Boot)  File က  NTFS File System ရဲ့  First Sector (Sector 0) , Cluster ဆိုရင် Cluster 0 မှာအမြဲရှိပါတယ်။ FAT File System ရဲ့ Boot Sector နဲ့တူညီပါတယ်။ $Boot ကနေ MFT ရှိတဲ့ Cluster Number, Cluster Size, Sector Size , File System Serial Number တို့ကိုသိရှိနိုင်ပါတယ်။ MFT က NTFS File System ရဲ့ Heart ဖြစ်တဲ့အတွက် MFT ရှိတဲ့နေ ရာကိုညွှန်ပြတဲ့ ($Boot)  ကလဲ အရေးကြီးပါတယ်။ ဒါကြောင့် ($Boot) File  က Backup အနေနဲ့  နောက်ဆုံး Sector မှာ ($Boot)  ထပ်ပြီးရှိပါတယ်။ ($Boot) ကအကြောင်းတစ်ခုခုကြောင့်ပျောက် ဆုံးသွားရင် Backup အနေနဲ့ရှိနေဖို့ဖြစ်ပါတယ်။ 




$Boot File က First Sector (Sector 0), Cluster ဆိုရင် Cluster 0 မှာရှိနေတာကို တွေ့နိုင်ပါတယ်။


အခု Storage မှာ $MFT File က Cluster 5461 မှာရှိနေပါတယ်။

အခုအောက်က ပုံ 2 ပုံကတော့ $MFT Table နဲ့ $MFTMirror File ဖြစ်ပါတယ်။ ($MFTMirror) ကတော့ $MFT Error ဖြစ်ခဲ့ရင် အသုံးပြုနိုင်ဖို့အတွက် $MFT ရဲ့  ပထမဆုံး Record (Entry) 4 ခုကိုသိမ်းထား တာဖြစ်ပါတယ်။ 





Over View Of NFTS Volume 



Volume Boot Record (VBR) Size က Storage Volume မှာအသုံးပြုတဲ့ Cluster Size အပေါ်မူ တည် ပြီးရှိနိုင်ပါတယ်။ Cluster Size က 4096 Bytes (4KB) ရှိရင် $Boot File က 8 Sector နေရာယူပါမယ်။ 


Volume က Bootable ဖြစ်နေရင် Bootstrap Code ရှိနေမှာဖြစ်ပြီး Bootable မဖြစ်ရင် Bootstrap Code နေရာမှာ A တွေပဲဖြစ်နေပါမယ်။ 


Detail Volume Boot Record 



Data Structure For the Boot Sector


အခုဖော်ပြမှာကတော့ Volume Boot Record (VBR) နဲ့  Bios Parameter Block (BPB) အကြောင်းပဲဖြစ်ပါတယ်။ Data Structure Of Boot Sector ပုံကတော့ NTFS Analysis အတွက် အရေးကြီးတဲ့အပိုင်းတွေကို သတိထားမိအောင် ဖော်ပြထားတာဖြစ်ပါတယ်။ 

အခုဆက်လက်ပြီးဖော်ပြမှာကတော့ Bios Parameter Block (BPB) , Extended Bios Parameter Block (EBPB)  အကြောင်းဖြစ်ပါတယ်။ 


BPB & EBPB   (Decimal ) 


BPB & EBPB   (Hex) 

Disk Editor တွေမှာ Offset ကို Hex Number (0-9) (A-F) နဲ့ဖတ်လို့ရနိုင်သလို (0-15) Decimal အနေနဲ့လဲဖတ်နိုင်ပါတယ်။ 

အောက်ကပုံကတော့ အပေါ်ကပုံမှာရှိတဲ့ အပိုင်းတစ်ပိုင်းခြင်းစီအလိုက်ကို အသေးစိတ်ဖော်ပြထားတာ ဖြစ်ပါတယ်။ 


အဝါရောင်နဲ့ပြထားတာက Jump Boot Code ကိုဖော်ပြထားတာဖြစ်ပါတယ်။ အခုပုံအတွက် Disk Editor ကို (0-15) Decimal အနေနဲ့ပြထားပါတယ်။ 
  • EB 52 = Jump 00000054
  • 90 = NOP




OEM ID ကိုဖော်ပြထားတာဖြစ်ပါတယ်။ 4E54465320202020 ဆိုတဲ့ Hex ကို Text (Word) ပြောင်းလိုက်တဲ့အခါမှာ NTFS ရပါတယ်။ NTFS File System ဆိုတာကို ဖော်ပြတာဖြစ်ပါတယ်။ Hex To Binary Or Text (Word) ကို Online မှာ အလွယ်တစ်ကူပြောင်းလဲနိုင်ပါတယ်။ 



Byte Per Sector = 0002 လို့ Disk Editor မှာဖော်ပြထားပေမဲ့ Decimal ပြောင်းတဲ့အခါ 0200 လို့ပြောင်းလဲပြီးမှ Decimal ကိုပြောင်းပါတယ်။ 0200 = 512  ဖြစ်ပါတယ်။ 

Bytes Per Sector = 512 Bytes  (Sector တစ်ခုမှာ 512 Bytes ရှိပါတယ်။) 

Sector Per Cluster = 08 = 8  (Cluster တစ်ခုမှာ 8 Sectors ရှိပါတယ်။) 

Reversed Number Of Sector = 00 = 0 



Media Descriptor = F8  (F8) ဆိုတာက Hard Disk ဖြစ်တယ်ဆိုတာကိုဖော်ပြထာဖြစ်ပါတယ်။) F0 ဆိုရင် Floopy ဖြစ်ပါတယ်။ Unused နေရာတွေကတော့ 0 တွေဖြစ်ပါတယ်။ 
3F00 ဆိုတာက Sector Per Track Number ကိုပြောတာဖြစ်ပါတယ်။  Decimal အတွက် 3F00 = 63 
2000 Total Number Of Heads = 0020 = 32

Hidden Sector = 01000000 = 1

Total Number Of Sector 

Hex Number = FFFF010000000000

01FFFF  = 131071


Logical Cluster Number For $MFT 

Hex = 5515000000000000

1555 = 5461

$MFT က Cluster Number 5461 မှာရှိတယ်ဆိုတာကိုဖော်ပြတာဖြစ်ပါတယ်။ 


Logical Cluster Number For $MFT 

Logical Cluster Number For $MFTMirror 

Hex = 0200000000000000

02 = 2

$MFTMirror က Cluster Number 2 မှာရှိတယ်ဆိုတာကိုဖော်ပြတာဖြစ်ပါတယ်။ 

Logical Cluster Number For $MFTMirror 


Cluster Per MFT Record = F6 = 246 

Cluster Per Index = 1 

Volume Serial Number = 3741753E6F753E1E


Course မှာက ဒီအထိပဲပါပေမဲ့  ကျန်နေတဲ့ Volume Boot Record မှာပါတာတွေကို ပုံဖြင့်ဖော်ပြထားပါတယ်။
NTFS File System  ရဲ့  Volume Boot Record (VBR) မှာပါဝင်တဲ့အကြာင်းအရာတွေကို နားလည် အောင်ဖော်ပြတာဖြစ်ပါတယ်။ Disk Editor တွေမှာ အခုလိုတွက်ချက်စရာမလိုပဲ အဆင့်သင့် ကြည့်နိုင်တဲ့ Template တွေရှိပါတယ်။ 

Boot Sector NTFS Template 


Comments

Popular posts from this blog

B-Trees (NTFS)

NTFS Index Attributes

Volatility Workbench (GUI) for the Volatility tool