KIẾN THỨC CƠ BẢN VỀ TỆP TIN HỆ THỐNG – PHẦN 1: NTFS

New Technology File System (NTFS) được Microsoft giới thiệu khi cho ra đời sản phẩm Windows NT, đây cũng là hệ thống tập tin chính thức cho các hệ điều hành sau này như Windows Vista, 7, 8, 10, v.v… Đây là một hệ thống tập tin giúp tăng hiệu suất hoạt động của hệ điều hành và các ứng dụng chạy trên nó, tăng dung lượng đĩa cứng và giảm thiểu không gian không được sử dụng (slack).

Trên một ổ đĩa NTFS, tất cả dữ liệu ghi lên đĩa cứng đều được xem là tập tin. Vùng dữ liệu đầu tiên là phân vùng khởi động Partition Boot Sector (hay sector 0). Tiếp theo Partition Boot Sector là bảng Master File Table (MFT). Đây là vùng chứa tập tin đầu tiên được tạo khi ổ đĩa cứng được phân vùng và định dạng là NTFS; dung lượng của MFT chiếm khoảng 12,5% không gian đĩa. Đây cũng là lý do mà chúng ta thấy một ổ đĩa không bao giờ tận dụng được 100 % không gian lưu trữ của nó.

     1. Tệp tin hệ thống NTFS

Khi một phân vùng được định dạng bằng NTFS, một tệp MFT và các siêu dữ liệu khác sẽ được tạo ra. Trong NTFS, siêu dữ liệu là các tệp được sử dụng để triển khai cấu trúc hệ thống tệp tin. NTFS lưu trữ 16 bản ghi đầu tiên của MFT cho các tệp siêu dữ liệu (dung lượng khoảng 1 MB)

Các vị trí lưu trữ, phân đoạn dữ liệu cho MFT ($Mtf) và MFT ($MtfMirr) được ghi lại trong khu vực khởi động. Nếu bản ghi MFT đầu tiên bị hỏng, NTFS sẽ đọc bản ghi thứ hai để tìm tệp bản sao MFT. Một bản sao của khu vực khởi động NFTS nằm ở cuối phân vùng. Dưới đây là mô tả về các tệp siêu dữ liệu được lưu trữ trong MFT:

Tệp tin hệ thốngTên tệpBản ghi MFTChức năng của tệp này
Master file table$Mft0Chứa một bản ghi tệp cơ sở cho mỗi tệp và thư mục trên một phân vùng NTFS. Nếu thông tin phân bố cho một tệp hoặc thư mục quá lớn so với một bản ghi, các bản ghi tệp khác sẽ được sử dụng để lưu trữ thông tin này.
Master file table 2$MftMirr1Một ảnh bốn bản ghi đầu tiên của MFT. Tệp tin này đảm bảo quyền truy cập vào MFT trong trường hợp có lỗi trên Single-Sector
Log file$LogFile2Tệp tin này chứa danh sách các bước thay đổi của tệp tin dùng để phục hồi NTFS. Kích thước của tệp nhật ký phụ thuộc vào kích thước của phân vùng và có thể lớn hơn 4MB. Nó được sử dụng từ Windows 2000 cho tới nay để khôi phục tính thống nhất của NTFS sau khi hệ thống bị lỗi.
Volume$Volume3Chứa thông tin về volume ví dụ như nhãn của volume, phiên bản của volume.
Attribute definitions$AttrDef4Chứa bảng dữ liệu thông tin tên các thuộc tính, số và mô tả
Root file name index$5Thư mục gốc
Cluster bitmap$Bitmap6Tệp tin đại diện cho khối lượng (số lượng) các khối (clusers) được sử dụng
Boot sector$Boot7Tệp tin này bao gồm BPB, nó sử dụng để gắn kết ổ đĩa và mã tái khởi động gắn kèm nếu phân vùng có khả năng khởi động (bootable)
Bad cluster file$BadClus8Chứa các khối xấu, lỗi
Security file$Secure9Chứa các mô tả bảo mật cho tất cả các tệp tin trong Volume
Upcase table$Upcase10Chuyển đổi các kí tự thường thành kỹ tự in hoa trong Unicode
NTFS extension file$Extend11Được sử dụng cho các phần mở rộng tùy chọn khác nhau như hạn ngạch sử dụng, dữ liệu điểm thô và nhận dạn đối tượng
12–15Sử dụng cho các mở rộng trong tương lai

     Các bản ghi còn lại của MFT chứa các hồ sơ tệp và thư mục cho mỗi tệp và thư mục trên ổ đĩa:

     + NTFS tạo một bản ghi tệp cho mỗi tệp và bản ghi thư mục cho từng thư mục được tạo trên ổ đĩa NTFS.

     + MFT bao gồm một bản ghi tệp riêng cho chính MFT.

     + Các bản ghi tệp và thư mục này được lưu trữ trên MFT.

     + NTFS phân bổ không gian cho mỗi bản ghi MFT dựa trên kích thước cụm của tệp.

     + Các thuộc tính của tệp được ghi vào không gian được phân bổ trong MFT.

     + Bên cạnh các thuộc tính tệp, mỗi bản ghi tệp chứa thông tin về vị trí của bản ghi tệp trong MFT.

     Mỗi tệp thường sử dụng một bản ghi tệp. Tuy nhiên, nếu một tệp có số lượng lớn thuộc tính hoặc bị phân mảnh cao, tệp có thể cần nhiều hơn một bản ghi tệp. Nếu xảy ra trương hợp này, hồ sơ đầu tiên cho tệp, bản ghi tệp cơ sở, lưu trữ vị trí của các hồ sơ tệp khác theo yêu cầu của tệp. Các tệp và cặp nhỏ (thường là 1.500 byte hoặc nhỏ hơn) hoàn toàn nằm trong bản ghi MFT của tệp. Hình 1 cho thấy nội dung của một bản ghi MFT cho một tệp hoặc thư mục nhỏ.

Hình 1. Bản ghi MFT cho một tệp hoặc thư mục nhỏ

     Các bản ghi thư mục chứa thông tin chỉ mục. Các bản ghi thư mục nhỏ nằm hoàn toàn bên trong cấu trúc MFT, trong khi các thư mục lớn được tổ chức thành các cấu trúc B-tree ** và có các bản ghi với các con trỏ tới các cụm bên ngoài chứa các mục nhập thư mục không thể chứa trong cấu trúc MFT.

     2. Thuộc tính tệp tin MFT

     Công nghệ lưu trữ trên hệ thống đã thay đổi rất nhiều với NTFS. Các thông tin về tập tin và thư mục được lưu trữ trong các record tách biệt có kích thước 1024, và được xem như là các thuộc tính của tập tin với mỗi vùng của record là ID của thuộc tính.

     Hình 2 là một bản ghi MFT record trình bày các thuộc tính của một tập tin xem trong một trình soạn thảo thập lục phân.

     A: Tất cả các MFT record bắt đầu với FILE0

     B: Bắt đầu của thuộc tính 0x10

     C: Chiều dài của thuộc tính 0x10 (giá trị 60)

     D: Bắt đầu của thuộc tính 0x30

     E: Chiều dài của thuộc tính 0x30 (giá trị 70)

     F: Bắt đầu của thuộc tính 0x40

     G: Chiều dài của thuộc tính 0x40 (giá trị 28)

     H: Bắt đầu của thuộc tính 0x80

     I: Chiều dài của thuộc tính 0x80 (giá trị 70)

     J: Thuộc tính thường trú 0x80

     K: Điểm bắt đầu của dữ liệu thường trú

Hình 2: Các thuộc tính của tập tin trình

Hình 3: Thông tin của tập tin thường trú.

Hình 4: Các MFT record của tập tin không thường trú.

     A: Bắt đầu của thuộc tính không thường trú 0x80.

B: Chiều dài thuộc tính của 0x80

C: Cờ của thuộc tính không thường trú 0x80.

D: Bắt đầu của dữ liệu nạp.

E: Kết thúc của các record, đánh dấu “FF FF FF FF” cho các hồ sơ MFT record.

     3. Cấu trúc MFT của tệp tin dữ liệu

     Khi xem cấu trức của MFT record với một công cụ hexa editor như WinHex, dữ liệu được hiển thị từ phải sang trái. Ví dụ, giá trị thập lục phân 400 được hiển thị như là 00 04 00 00, và số 0x40000 được hiển thị như 00 00 04 00. Phần đầu tiên của một MFT record là header xác định kích thước và vị trí khởi đầu của thuộc tính đầu tiên. Tiếp theo sau header là các thuộc tính cụ thể cho các loại tập tin, ví dụ như là một tập tin ứng dụng hay một tập tin dữ liệu. Các MFT record dành cho thư mục và tập tin hệ thống có những thuộc tính bổ sung mà không hiển thị trong một bản ghi MFT record. Các đồng chí có thể tham khảo thêm về những thông tin này tại danh sách sau:

  • 0x10 Standard Attribute Header
  • 0x20 Non resident pointers
  • 0x30 File name
  • 0x50 Security descriptor
  • 0x60 Volume name
  • 0x80 Data run pointers and file size
  • 0xA0 Index allocation
  • 0xB0 Bitmap
  • 0xD0 EA information
  • 0xE0 EA
  • 0xF0 Property Set

     4. Luồng dữ liệu NTFS

Khi thảo tác trên các ổ đĩa NTFS, ta cần lưu ý có thể một tập tin được nối vào một tập tin khác làm cho chúng ta không thể nhận biết bằng mắt thường, đây là kỹ thuật che dấu dữ liệu được gọi là luồng dữ liệu NTFS. Ví dụ như lệnh sau sẽ tạo ra một luồng dữ liệu

C:\echo text _string > myfile.txt:stream_name

Hay ta có thể lưu tập tin testfile.txt vào trong tập tin myfile.txt với lệnh:

C:\ type textfile.txt > myfile.txt:stream1

Bằng mắt thường các ta không thể nhận biết được sự lồng ghép này hay hiện diện của các tập tin được streaming, tuy nhiên khi khảo sát bằng những chương trình chuyên dùng các đồng chí có thể nhận biết được sự có mặt của chúng. Vì luông dữ liệu NTFS hỗ trợ việc streaming một tập tin exe vào một tập tin txt nên có thể bị hacker lợi dụng chèn mã độc hay virus, do đó một số chương trình diệt virus thông dụng có thể phát hiện ra các luông dữ liệu có chứa tập tin thực thi.

     5. Xóa tệp tin NTFS

Thông thường, khi ta xóa một tập tin trong Windows Explorer thì chúng sẽ được chuyển đến “thùng rác” trên máy tính hay Recycle Bin. Tùy thuộc vào kích thước của Recycle Bin mà dữ liệu có thể bị ghi đè hoặc bị xóa ngay lập tức. Nếu dữ liệu được chuyển đến Recycle Bin chúng ta có thể phục hồi chúng một cách dễ dàng. Tuy nhiên, trong một số trường hợp tập tin bị xóa bằng những phương pháp khác như dùng lệnh xóa của MS DOS hay do kích thước qua lớn không thể chuyển vào thùng rác, thì chúng ta phải phục hồi bằng những công cụ điều tra máy tính chuyên nghiệp hay các ứng dụng phục hồi dữ liệu mạnh mẽ như Get Data Back, Easy Recovery…

Bài viết có sự tham khảo tại: docs.microsoft.com và wikipedia.org

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *