--------------- <> -----------------
--- KHOA HỌC - CÔNG NGHỆ - GIÁO DỤC - VIỆC LÀM ---
--- Học để đi cùng bà con trên thế giới ---

Tìm kiếm trong Blog

Hiển thị các bài đăng có nhãn BPB. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn BPB. Hiển thị tất cả bài đăng

He thong quan ly tap tin NTFS - 5 - VBR - BPB vi du



(tiếp theo của  He thong quan ly tap tin NTFS - 4 - VBR - BPB)





Sau đây là phần minh họa các bước để đọc được nội dung BPB trên đĩa cứng thật.

-         Sử dụng phần mềm Disk Editor, đọc MBR của đĩa cứng (sector 0). Định vị vùng partition table, bắt đầu tại địa chỉ (offset) 0x01BE, xem Hình 17.





-         Từ entry mô tả thông tin cho ổ đĩa C:\, xác định được địa chỉ bắt đầu của ổ đĩa C:\ là “3F 00 00 00” = 63.

-         Đọc sector 63, đây là vị trí bắt đầu vùng VBR của ổ đĩa C:\. Kết quả được minh họa trong Hình 18.



-         Từ VBR xác định vùng BPB, bắt đầu tại địa chỉ (offset) B đến 53, gồm 73 byte, xem Hình 19.



-         Giá trị cụ thể của các trường trong BPB được minh họa trong bảng sau.

Địa chỉ
(offset)
Kích thước
(byte)
Giá trị
Giá trị
hệ 10
Mô tả
0Bh
2
0x0200
512
Kích thước một sector là 512 byte.
0Dh
1
0x08
8
Số sector trong một cluster là 8, vậy kích thước một cluster là:
8 x 512 = 4096 B = 4 KB.
0Eh
2
“0000”
0
Chưa sử dụng.
10h
1
“00”
0
Với hệ thống NTFS, luôn mang giá trị 0.
11h
2
“0000”
0
Với hệ thống NTFS luôn mang giá trị 0.
13h
2
“0000”
0
Luôn mang giá trị 0, hệ thống NTFS không sử dụng tới trường này.
15h
1
0xF8
248
Mã xác định loại đĩa. F8 = Fixed Disk.
16h
2
“0000”
0
Với hệ thống NTFS, luôn mang giá trị 0.
18h
2
0x003F
63
Số sector/track là 63.
1Ah
2
0x00FF
255
Số mặt đĩa (head hay side) là 255.
1Ch
4
0x00003F
63
Sector bắt đầu của ổ đĩa logic C:\ là 63.
20h
4
“00000000”
0
Luôn mang giá trị 0, hệ thống NTFS không sử dụng tới trường này.
24h
4
“80008000”

Hệ thống NTFS luôn thiết lập giá trị này là “80008000”.
28h
8
0x0000 0000 0283 3A00
42 154 496
Số sector của ổ đĩa
30h
8
0x0000 0000 000C 0000
786 432
Cluster bắt đầu của MFT.
38h
8
0x0000 0000 0000 0002
2
Cluster bắt đầu của MFTMirror (MFT dự phòng)
40h
1 (số có dấu)
0xF6
-10
Kích thước của một bản ghi MFT (MFT entry). Đơn vị tính là byte.
0xF6 là một số có dấu, 0xF6 = 1111 0110 (dạng bù 2), tính ra được giá trị hệ thập phân = -10.
Kích thước của một bản ghi MFT tính bằng 2 ^ |-10| = 1024 byte.
41h
3
“000000”

Luôn mang giá trị 0, hệ thống NTFS không sử dụng tới trường này.
44h
1 (byte có dấu)
0x01
1
Số cluster của Index Buffer.
45h
3
“000000”

Luôn mang giá trị 0, hệ thống NTFS không sử dụng tới trường này.
48h
8
0xB428 B05B 28B0 1DF4

Số seri của ổ đĩa (volume serial number).
Khi sử dụng lệnh dir trong cửa sổ dòng lệnh, hệ thống chỉ hiển thị giá trị của 4 byte cuối.
Ví dụ:
C:\> dir
Volume in drive C has no lable. Volume Serial Number is 28B0-1DF4
50h
4
“0000 0000”
0
Không được sử dụng bởi NTFS.
 

---------------------------
Tài liệu đã tham khảo:
Brian Carrie, File System Forensic Analysis, Addison Wesley Professional, 2005
-------------------
Cập nhật 2014/5/29
----------------------
Đọc thêm
He thong quan ly tap tin NTFS - 6 - MFT - MFT entry

He thong quan ly tap tin NTFS - 4 - VBR - BPB

(tiếp theo của He thong quan ly tap tin NTFS - 3 - EBR)





Hệ thống quản lý tập tin NTFS

 

Một vài lưu ý


Trong phần MBR và EBR, tài liệu đã trình bày các thông tin cần thiết để có thể định vị được vị trí bắt đầu của một ổ đĩa logic bất kì, dù là ổ đĩa logic nằm trên primary partition hay extended partition.

Lưu ý: khi cài hệ điều hành Windows 7 trên các đĩa cứng chưa được chia phân vùng, Windows 7 luôn tạo ra một phân vùng có kích thước 100MB và đặt tên là system reserved.

Phân vùng system reserved được thiết lập là “active”, phân vùng này thường không được đặt tên, và ẩn đối với người dùng. Có thể xem phân vùng này bằng tiện ích Disk Management của Windows hoặc các phần mềm tiện ích khác. Như vậy, mặc dù người sử dụng thực hiện cài đặt hệ điều hành vào ổ đĩa C:\, nhưng thực sự ổ đĩa C:\ không nằm trên phân vùng đầu tiên của ổ đĩa cứng, mà nó đang nằm ở phân vùng thứ hai. Xem minh họa trong Hình 14.




Mỗi ổ đĩa logic có thể sử dụng một hệ thống quản lý tập tin bất kì, như: NTFS, hoặc FAT32, hoặc Ext2, hoặc Ext3, …v.v. Có thể lựa chọn hệ thống quản lý tập tin cho ổ đĩa logic bằng chức năng định dạng cấp cao (high format).

Phần tiếp theo trình bày tổ chức của hệ thống quản lý tập tin NTFS ở mức đơn giản, đủ để có thể đọc được nội dung của tập tin Test.txt như trong tình huống ví dụ đã đề cập.

 

Tổng quan về NTFS


NTFS (New Technology File System) là hệ thống quản lý tập tin có độ tin cậy cao, có tính bảo mật và hỗ trợ cho các thiết bị lưu trữ có dung lượng lớn. Được phát triển bởi tập đoàn Microsoft.

NTFS là một hệ thống quản lý tập tin có cấu trúc tổ chức khá phức tạp, hiện tại (2014) Microsoft chưa công bố tài liệu đặc tả chi tiết về hệ thống quản lý tập tin này. Tuy nhiên, có nhiều nhóm đã tìm hiểu và công bố các kết quả của họ về hệ thống NTFS.

NTFS được sử dụng nhiều trong các hệ điều hành Windows, các bản Unix mã nguồn mở.

Trong hệ thống NTFS, thông tin về cấu trúc tổ chức của hệ thống quản lý tập tin được lưu trong các tập tin, như các tập tin dữ liệu thông thường. Trong khi ở các hệ thống quản lý tập tin khác (ví dụ FAT32), các thông tin về cấu trúc tổ chức của hệ thống thường bị ẩn.

Hệ thống đĩa định dạng theo NTFS không có cơ cấu tổ chức cố định, toàn bộ hệ thống đĩa được xem như một vùng duy nhất, một sector có thể được cấp phát cho một tập tin bất kỳ. Trong hệ thống, chỉ có một vùng được cấp phát cố định, đó là Boot Sector hay còn được gọi là VBR (Volume Boot Record).

Tổ chức của ổ đĩa logic định dạng NTFS được minh họa ở Hình 15.



 

VBR


VBR (Volume Boot Record) là bản ghi khởi động của ổ đĩa logic, nó luôn nằm ở vị trí đầu tiên của mỗi ổ đĩa logic. VBR chứa: mã khởi động, BPB, thông báo lỗi, và một số thông tin khác.

Nhắc lại quá trình khởi động của một hệ điều hành Windows, sau quá trình POST, máy tính sẽ đọc và thực thi đoạn mã khởi động trong MBR. Nhiệm vụ của đoạn mã này là xác định xem đĩa cứng đã được chia thành mấy phân vùng, phân vùng nào đã được thiết lập là phân vùng khởi động chính (active). Nếu không tìm thấy phân vùng khởi động chính, hệ thống sẽ báo lỗi. Nếu có phân vùng khởi động chính, hệ thống sẽ tìm kiếm đoạn mã khởi động trong VBR, đoạn mã trong VBR sẽ được thực thi để triệu gọi chương trình tìm kiếm và khởi động hệ điều hành (Windows boot loader). Với Windows XP, boot loader là NTLDR; với Windows 7 về sau là BOOTMGR.

Cấu trúc cụ  thể của VBR được thể hiện ở bảng sau.

Địa chỉ
(offset)
Mô tả
Kích thước
(byte)
0 -> 2
Lệnh nhảy
3
3 -> A
Giá trị OEM ID hoặc tên hệ thống quản lý tập tin
8
B -> 53
BPB
73
54 -> 18B
Mã khởi động
312
18C -> 1F7
Thông báo lỗi
108
1F8 -> 1FD
Message offset
6
1FE -> 1FF
Dấu hiệu kết thúc VBR
2

Với hệ thống Windows 7, VBR thực tế gồm 16 sector liên tiếp nhau. Trong đó, 8 sector đầu tiên và 40 byte của sector thứ 9 là có dữ liệu, phần còn lại được lấp đầy bằng giá trị 0. Khi khởi động toàn bộ 16 sector này sẽ được nạp vào bộ nhớ.

Vậy số byte của VBR có dữ liệu là: 8 x 512 + 40 = 4 136 byte.

Để xác định vị trí của VBR trên ổ đĩa C:\ cần lưu ý hai trường hợp sau:

-         Trường hợp 1: với một đĩa chưa được chia sẵn phân vùng, khi cài đặt hệ điều hành (ví dụ Windows 7), hệ thống sẽ dành riêng một vùng có kích thước 2 048 sector ở phần đầu đĩa cứng vật lý để chứa MBR và để dự trữ. Ngoài ra hệ thống cũng tạo ra một phân vùng có kích thước 100MB tên là System Reversed.

Để xác định vị trí của VBR trên ổ đĩa C:\, cần đổi 100MB ra sector:

100MB = (100 x 1024 x 1024)/512 = 204 800 (sector)

Cộng với 2 048 sector ở phần đầu:

204 800 + 2 048 = 206 848 (sector).

Như vậy, VBR của ổ đĩa C:\ sẽ bắt đầu tại sector 206 848.

-         Trường hợp 2: với đĩa cứng đã được chia phân vùng bằng tiện ích Partition Magic hoặc phần mềm chia phân vùng bất kì, VBR sẽ bắt đầu tại sector 63.

Trong cấu trúc của VBR có hai vùng dữ liệu quan trong là: đoạn mã khởi động và BPB.

 

BPB


BPB (Bios Parameter Block) bắt đầu tại offset 0xB tới offset 0x53 trong VBR, có kích thước 73 byte. BPB chứa một số thông tin mô tả về tổ chức của một ổ đĩa logic và hệ thống quản lý tập tin. Ví dụ: kích thước của một sector, số sector trong một cluster, tổng số sector trong ổ đĩa logic, vị trí bắt đầu của vùng MFT…v.v.

Trong quá trình khởi động BPB được nạp vào RAM tại địa chỉ 0x7C0B đến 0x7C53.

Cấu trúc các trường của BPB được minh họa trong bảng sau.

Địa chỉ
(offset)
Kích thước
(byte)
Mô tả
0Bh
2
Kích thước một sector. Đơn vị tính là byte.
0Dh
1
Số sector trong một cluster.
0Eh
2
Chưa sử dụng.
10h
1
Với hệ thống NTFS luôn mang giá trị 0.
11h
2
Với hệ thống NTFS luôn mang giá trị 0.
13h
2
Luôn mang giá trị 0, hệ thống NTFS không sử dụng tới trường này.
15h
1
Mã xác định loại đĩa.
16h
2
Với hệ thống NTFS luôn mang giá trị 0.
18h
2
Số sector/track.
1Ah
2
Số mặt đĩa (head hay side).
1Ch
4
Sector bắt đầu của ổ đĩa logic.
20h
4
Luôn mang giá trị 0, hệ thống NTFS không sử dụng tới trường này.
24h
4
Hệ thống NTFS luôn thiết lập giá trị này là “80008000”.
28h
8
Số sector của ổ đĩa logic.
30h
8
Cluster bắt đầu của MFT.
38h
8
Cluster bắt đầu của MFT dự phòng (MFTMirror).
40h
1
Kích thước của một bản ghi trong MFT (MFT entry), đơn vị tính là byte.
41h
3
Luôn mang giá trị 0, hệ thống NTFS không sử dụng tới trường này.
44h
1
Số cluster của Index Buffer.
45h
3
Luôn mang giá trị 0, hệ thống NTFS không sử dụng tới trường này.
48h
8
Số seri của ổ đĩa (volume serial number).
50h
4
Không được sử dụng bởi NTFS.

 

Đọc VBR và BPB


Hình 16 là tóm tắt các bước để đọc được nội dung BPB. Qua Hình 16, người đọc sẽ dễ dàng hình dung về cấu trúc tổ chức của đĩa cứng đã được trình bày từ đầu tài liệu.




Các bước để đọc BPB:

-         Đọc sector 0 để có nội dung của MBR.

-         Trong MBR, tìm tới địa chỉ (offset) 0x01BE, đây là nội dung của partition table.

-         Giả sử entry số 1 mô tả thông tin cho ổ đĩa C:\, dựa vào entry này tìm sector bắt đầu của ổ đĩa C:\, đây cũng là địa chỉ bắt đầu của VBR.

-         Trong VBR, tìm tới địa chỉ (offset) 0xB, đây là nội dung của BPB, gồm 73 byte, kết thúc tại 0x53.

-----------------------------
Tài liệu đã tham khảo:
Brian Carrie, File System Forensic Analysis, Addison Wesley Professional, 2005
-------------------
Cập nhật 2014/5/28
-------------------
Đọc thêm
He thong quan ly tap tin NTFS - 5 - VBR - BPB (tt)
-----
Bạn muốn tự học HTML bài bản? Xem thêm