Tài liệu

Virus máy tính

Science and Technology

Giới thiệu

Khái niệm virus máy tính

Virus là một thuật ngữ chung để chỉ các loại chương trình máy tính có một số đặc tính chung như khả năng xâm nhập, lây lan, phá hoại... Do đó khi nhắc tới virus máy tính chúng ta cần hiểu từ này theo nghĩa rộng để nó bao hàm các loại chương trình như virus, trojan horse, worm…Vì virus thường được tin tặc sử dụng như các phương tiện để tấn công các hệ thống máy tính của các tổ chức và cá nhân nên virus thường được hiểu với nghĩa tiêu cực. Trên thực tế, virus có thể được sử dụng trong các công việc hữu ích như chống sao chép phần mềm, chống lại các virus phá hoại khác…

Chương trình virus có cấu trúc như sau [28]:

Program V : =

{1234567;

Subroutine infect-executable:=

{loop: file = random-executable;

if (first-line of file = 1234567)

then goto loop;

else prepend V to file;}

Subroutine do-damage:=

{Bất cứ thứ gì bạn có thể lập trình}

Subroutine trigger-pulled:=

{Bất cứ thứ gì bạn muốn kích hoạt}

Main-program-of-virus:=

{infect-executable;

If (trigger-pulled) then do-damage;

Goto next;}

Next:

}

Ví dụ :Virus tấn công từ chối dịch vụ

Trigger-pulled:=

{if the date is after Jan 1, 1999;}

Do-damage:=

{loop: goto loop;}

Ví dụ : Virus nén file

Program V : =

{01234567;

Subroutine infect-exec:=

{loop: file = random-executable;

if first-line of file = 01234567

then goto loop;

(1) compress file;

(2) prepend CV to file;

}

Main-program:=

{if ask-permission

then infect-exec;

(3) uncompress rest-of-file;

(4) run uncompressed file;

}

}

Virus nén file

Lịch sử phát triển

Một số cột mốc đáng lưu ý trong lịch sử hình thành và phát triển của virus máy tính như sau [15]:

  • Năm 1949 mô hình của một chương trình máy tính tự nhân bản ra đời
  • Năm 1959 trò chơi Core War được phát triển
  • Năm 1983 Thompson đưa ra ý tưởng về phương pháp làm virus
  • Năm 1987 virus Lehigh xuất hiện lần đầu tiên trên máy IBM PC

Các tính chất cơ bản của virus

Các tính chất cơ bản, điển hình của virus bao gồm

  1. Tính lây lan
  2. Tính chất phá hoại
  3. Tính nhỏ gọn
  4. Tính tương thích
  5. Tính phát triển kế thừa.

Bài tập: Xác định các tính chất điển hình của sâu Internet (Internet Worm).

Phân loại virus

Dựa vào một số đặc tính đặc trưng của virus chúng ta có thể phân loại chúng. Sau đây là một số cách phân loại điển hình. Mục đích là đưa ra cách phòng chống phù hợp với từng loại [16].

Phân loại theo đối tượng lây nhiễm và môi trường hoạt động

1. Virus boot

2. Virus file (a. DOS virus, b. Windows virus, c. macro virus )

Phân loại theo phương pháp tìm đối tượng lây nhiễm

1. Virus thường trú

2. Virus không thường trú

Phân loại theo phương pháp lây nhiễm

1. Ghi đè

2. Ghi đè bảo toàn

3. Dịch chuyển

4. Song hành

5. Nối thêm

6. Chèn giữa

7. Định hướng lại lệnh nhảy

8. Điền khoảng trống

Phân loại theo mức độ phá hoại

1. Virus thông thường

2. Virus huỷ diệt

Phân loại theo họ virus

1. Virus thời gian

2. Virus sự kiện …

Nhắc lại Assembly

Cấu trúc chung một chương trình Assembly: (xem [17])

Segment_Name SEGMENT

Segment_Name ENDS

END

Một số lệnh cơ bản:

  1. Lệnh truyền (di chuyển) dữ liệu

MOV đích, nguồn

Ví dụ: MOV AX, BX

MOV AX, [100]

  1. Lệnh lôgic và số học

ADD toán hạng đích, toán hạng nguồn

ADC toán hạng đích, toán hạng nguồn (Cờ nhớ CF)

DEC AX ; giảm AX đi 1 đơn vị

CMP toán hạng 1, toán hạng 2 (cờ nhớ ZF, CF)

T1<T2  ZF=0 CF=0

T1=T2  ZF=1 CF=0

T1>T2  ZF=0 CF=1

Ví dụ: ADD AX, BX

ADC CX, DX

ADD BX, 100

ADD 2000, 10

CMP AX, BX

CMP SI, 120 ; so sánh SI với hằng số

  1. Lênh dùng cho chuỗi kí tự

MOVSB, REP

  1. Lệnh để quản lý đơn vị trung tâm

STD, CLD, NOP

  1. Lệnh xuất/nhập hay lệnh vào/ra

IN AX, DX ; Dữ liệu ở cổng lưu trong thanh ghi DX sẽ được đọc vào AX

IN AL, 1A ; Cổng được chỉ định là các hằng số

OUT DX, AL ; Lệnh xuất dữ liệu ra cổng lưu trong DX

OUT 1A, AL ; Cổng được chỉ định là hằng số

  1. Lệnh nhảy

JMP đích ; lệnh nhảy không điều kiện

JC 802 A ; nhảy khi CF=1

JNC 2308 ; CF=0

JZ 5508 ; ZF=1

JNZ 149B ; ZF=0

CALL đích ; gọi chương trình con

  1. Lệnh ngắt

INT <số hiệu ngắt>

  1. Lệnh xử lý ngăn xếp

PUSH <thanh ghi, từ> ; 16 bit

POP <thanh ghi, từ> ; 16 bit

Ví dụ: PUSH BX ; cất dữ liệu của BX vào ngăn xếp

POP DI ; tạo lại một thanh ghi chỉ số

Biên dịch chương trình assembly:

  • Chương trình MASM
  • Chương trình TASM

Bài tập: Viết chương trình Assembly đọc vào ký tự từ bàn phím và hiển thị lên màn hình, sau đó quay trở về DOS.

Đọc thêm: Các dấu hiệu máy tính bị nhiễm virus.

Đánh giá:
0 dựa trên 0 đánh giá

Tuyển tập sử dụng module này

Nội dung cùng tác giả
 
Nội dung tương tự