V. Các đặc điểm của F-VIRUS
3. Kỹ thuật th−ờng trú
Đây là một kỹ thuật khó khăn, lý do là DOS chỉ cung cấp chức năng th−ờng trú cho ch−ơng trình, nghĩa là chỉ cho phép cả ch−ơng trình th−ờng trú. Vì vậy nếu sử dụng chức năng của DOS, ch−ơng trình virus muốn th−ờng trú thì cả file đối t−ợng cũng phải th−ờng trú, mà điều này thì không thể đ−ợc nếu kích th−ớc của file đối t−ợng quá lớn.
Chính vì lý do trên, hầu hết các ch−ơng trình virus muốn th−ờng trú đều phải thao tác qua mặt DOS trên chuỗi MCB bằng ph−ơng pháp "thủ công". Căn cứ vào việc th−ờng trú đ−ợc thực hiện tr−ớc hay sau khi ch−ơng trình đối t−ợng thi hành, có thể chia kỹ thuật th−ờng trú thành hai nhóm:
a. Th−ờng trú tr−ớc khi trả quyền điều khiển.
Nh− đã nói ở trên, DOS không cung cấp một chức năng nào cho kiểu th−ờng trú này, cho nên ch−ơng trình virus phải tự thu xếp. Các cách sau đây đã đ−ợc virus dùng đến:
- Thao tác trên MCB để tách một khối vùng nhớ ra khỏi quyền điều khiển của DOS, rồi dùng vùng này để chứa ch−ơng trình virus.
- Tự định vị vị trí trong bộ nhớ để tải phần th−ờng trú của virus vào, th−ờng thì các virus chọn ở vùng nhớ cao, phía d−ới phần tạm trú của file command.com để tránh bị ghi đè khi hệ thống tải lại command.com. Vì không cấp phát bọ nhớ cho phần ch−ơng trình virus đang th−ờng trú, cho nên command.com hoàn toàn có quyền cấp phát vùng nhớ đó cho các ch−ơng trình khác, nghĩa là ch−ơng trình th−ơng trú của virus phải chấp nhận sự mất mát do may rủi.
- Th−ờng trú bằng chức năng th−ờng trú 31h: Đây là một kỹ thuật phức tạp, tiến trình cần thực hiện đ−ợc mô tả nh− sau:
Khi ch−ơng trình virus đ−ợc trao quyền, nó sẽ tạo ra một MCB đ−ợc khai báo là phần tử trung gian trong chuỗi MCB để chứa ch−ơng trình virus, sau đó lại tạo tiếp một MCB mới để cho ch−ơng trình bị nhiễm bằng cách dời ch−ơng trình xuống vùng mới này. Để thay đổi PSP mà DOS đang l−u giữ thành PSP mà ch−ơng trình virus tạo ra cho ch−ơng trình đối t−ợng, phải sử dụng chức năng 50h của ngắt 21h.
b. Th−ờng trú sau khi đoạt lại quyền điều khiển.
Ch−ơng trình virus lấy tên ch−ơng trình đang thi hành trong môi tr−ờng của DOS, rồi nó thi hành ngay chính bản thân mình. Sau khi thi hành xong, quyền điều khiển lại đ−ợc trả về cho virus, và khi đó nó mới tiến hành th−ờng trú một cách bình th−ờng bằng chức năng 31h của ngắt 21h.