b. Biểu diễn lệnh máy của 12 byte đầu và các lệnh trong thủ tục khởi tạo
Trong thời kỳ đầu của DOS, do đơn giản và nhỏ gọn nên định dạng COM rất dễ bị file virus tấn công. Do hạn chế về kích thước và khả năng truy nhập bộ nhớ nên các hacker đã chuyển hướng tấn công sang định dạng EXE (Executable File)
2.1.2.2 Định dạng EXE (DOS Executable)
Định dạng EXE cho phép mở rộng kích thước tập tin lớn hơn 64KB bằng cách sử dụng mỗi phân đoạn bộ nhớ riêng biệt cho từng thanh ghi CS, DS, ES, SS. Với cách tổ chức này, EXE sử dụng cấu trúc đầu file (gọi là EXE header) chứa thông tin của file và các tham số giúp hệ điều hành định vị bộ nhớ, tải mã lệnh, dữ liệu, ngăn xếp và khởi tạo giá trị các thanh ghi CPU trước khi thực thi chương trình.
Lây vào EXE, file virus ghép mã lệnh vào cuối file rồi điều chỉnh CS:IP trỏ đến địa chỉ của nó. Các tập EXE có đặc điểm nhận dạng như sau: - Word đầu tập tin có trị‘MZ’ hoặc ‘ZM’
45
- Thủ tục khởi tạo trỏ đến địa chỉ thực trên file (Header < CS:IP < Filesize)
Hình x mơ tả cấu trúc đầu file của một tập tin EXE tiêu biểu. Hai byte đầu tiên (4D-5A) biểu diễn chuỗi ‘MZ’ nhận dạng file EXE. Các trường tiếp theo chứa thông tin file và các tham số định vị. Đặc biệt trường 3Ch có giá trị 00 (khơng có bảng thơng tin bổ sung). Nếu khác 0, trường này chứa con trỏ đến một header khác dùng cho NE-EXE (Windows 16 bit) và PE-EXE (Windows 32 bit). Các định dạng này sẽ được mô tả ở phần tiếp theo.