Test_vir_mb(): Hàm này so sánh Master Boot cần kiểm tra vớ

Một phần của tài liệu đồ án virus tin học (Trang 101 - 102)

Master Boot chuẩn, nếu không OK sẽ tiến hành đối chiếu với các mã nhận biết virus trong file VMB.DAT.

Giá trị trả lại của hàm: 0 : Master Boot OK. 1 : Phát hiện ra virus.

2 : Master Boot khoong OK, song không phát hiện ra virus. 3 : Lỗi đọc đĩa hoặc khơng tìm thấy file VMB.DAT

Trong ch−ơng trình đã l−u trữ đoạn mã chuẩn của Master Boot, ý nghĩa của đoạn mã này chúng ta đã khảo sát trong phần tổng quan. Modul này sẽ tiến hành đọc Master Boot cần kiểm tra, so sánh đoạn mã của nó với đoạn mã trong Master Boot chuẩn. Nếu thấy hai đoạn mã hoàn toàn khớp nhau, thì Master Boot cần kiểm tra OK, modul này kết thúc và trả về cho hệ thống gọi giá trị 0 (Master Boot OK). Cịn nếu có sự sai lạc, thì Master Boot có vấn đề, có thể là nó đang chứa một virus B-virus nào đó, hoặc cũng có thể nó có một nhiệm vụ đặc biệt. Trong tr−ờng hợp này sẽ tiếp tục kiểm tra sự có mặt của virus trên Master Boot thơng qua key value l−u trữ trong file VMB. DAT. Giống nh− việc kiểm tra đối với file VMEM.DAT,

đầu tiên file VMB.DAT đ−ợc mở ra. Nếu việc mở có lỗi (khơng có file VMB.DAT, hoặc có nh−ng bị lỗi), modul sẽ kết thúc và trả về cho hệ thống gọi giá trị 3 (Lỗi đọc đĩa hoặc khơng tìm thấy file VMB.DAT). Trong tr−ờng hợp ng−ợc lại, lần l−ợt từng bản ghi l−u trữ mã nhận biết của các B-virus đ−ợc đọc vào và kiểm tra, đối chiếu với đoạn mã trong Master Boot. Mỗi record l−u mã nhận biết gồm 26 byte có cấu trúc nh− sau:

2 byte : Offset bắt đầu của mã nhận biết. 1 byte : Số l−ợng byte trong mã nhận biết. 10 byte : Mã nhận biết của virus.

1 byte : Head, nơi cất giấu Master Boot cũ của đĩa. 2 byte : Cyl-Sec, nơi cất giấu Master Boot cũ của đĩa. 10 byte : Tên của virus.

Nếu có một mã nhận biết B-virus nào đó trùng với đoạn mã t−ơng ứng trong Master Boot cần kiểm tra, modul sẽ đ−a ra thông báo tên của virus hiện đang có mặt trong Master Boot, ngắt và trả về hệ thống gọi giá trị 1 (phát hiện ra virus).

Còn nếu đã kiểm tra hết mọi mã nhận biết trong VMB.DAT mà không thấy có sự trùng lặp trong đoạn mã của Master Boot, modul cũng sẽ kết thúc và trả về cho hệ thống gọi giá trị 2 (Master Boot lạ, song không phát hiện ra virus).

Một phần của tài liệu đồ án virus tin học (Trang 101 - 102)

Tải bản đầy đủ (PDF)

(135 trang)