Ngôn ngữ ASM là một ngôn ngữ cấp thấp, nó tác động đến hệ thống, vì vậy chủ yếu sử dụng các lệnh ngắt của DOS để điều khiển. Các ngắt của DOS rất nhiều cần phải có một thời gian dài để tìm hiểu, chỉ riêng có ngắt 21h thui thì cũng đã có rất nhiều hàm rùi, thật là phức tạp, dưới đây là một số hàm thông dụng của ngắt 21h được sử dụng ở bài "VIẾT MỘT VIRUS GHI ĐÈ LÊN FILE *.COM BẰNG ASM":
Hàm 4Eh: Hàm tìm file đầu tiên
In:
AH 4Eh
DS:DX Chuỗi chỉ định file cần tìm kiếm
CX Thuộc tính của file
CX = 0 => một file bình thường
CX = 3 => readonly, hidden, system
CX = 8 => chỉ tìm trong thư mục gốc
Out:
Nếu lỗi thì cờ Carry (CF) được bật
Nếu không lỗi thì trả về AX
AX Trả về DTA là thông tin file được tìm thấy bắt đầu tại 80h (thường thì cần lấy tên file được bắt đầu tại offset 1eh của DTA vì vậy để chỉ đến tên file thì ta có được địa chỉ: 80h+1eh = 9eh)
Ví dụ:
MOV AH,4Eh
XOR CX,CX ;sét CX = 0
MOV DX,offset "*.COM"
int 21h
Hàm 4Fh: Hàm tìm file tiếp theo
In:
AH 4Fh
Out:
Nếu lỗi thì cờ Carry (CF) được bật
Nếu không lỗi thì trả về AX
AX chứa DTA
Hàm 3Dh: Hàm mở file
In:
AH 3Dh
AL Chế độ mở file (00 = readonly, 01 = writeonly, 02 = Read and Write)
DS:DX Địa chỉ của file cần mở
Hàm 3Eh: Hàm đóng file
In:
AH 3Eh
BX Chứa file cần đóng (đã được mở ở hàm 3Dh)
Hàm 40h: Hàm ghi file
In:
AH 40h
BX chứa file cần ghi
CX chứa số byte cần ghi
DX Chứa địa chỉ nội dung file ghi
Hàm 09h: Hàm hiển thị chuỗi
In:
AH 09h
DS:DX chứa chuỗi hiển thị, cuối chuỗi phải có '$' để kết thúc.
Coi phần ví dụ minh họa trong bài viết "VIẾT MỘT VIRUS GHI ĐÈ LÊN FILE *.COM BẰNG ASM"
Thứ Sáu, 26 tháng 2, 2010
Sử dụng các hàm của ngắt 21h trong DOS
virus
Đăng ký:
Đăng Nhận xét (Atom)


0 nhận xét:
Đăng nhận xét