Đồ án tốt nghiệp tìm hiểu về virut máy tính và cách phòng chống

20 324 0
Đồ án tốt nghiệp   tìm hiểu về virut máy tính và cách phòng chống

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐỒ ÁN TỐT NGHIỆP BỘ GIÁO DỤC ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÁ NỘI KHOA TIN HỌC ĐỀ TÀI: “tìm hiểu virut máy tính cách phòng chống” GVHD : NGUYỄN THANH TÙNG SVTH : ĐỒ ÁN TỐT NGHIỆP MỤC LỤC Trang Lời nói đầu Chương I Đặt vấn đề Chương II Tổng quan I Giới thiệu tổng quát virus tin học II Đĩa - Tổ chức thông tin đĩa Cấu trúc vật lý Cấu trúc logic Các tác vụ truy xuất đĩa 14 Phân tích đoạn mã Master Boot Boot Record 21 III Quản lý vùng nhớ tổ chức, thi hành file DOS 29 Sơ đồ vùng nhớ DOS 29 Một số chức liên quan đến vùng nhớ DOS 31 Cấu trúc MCB 31 Quản lý tổ chức thi hành file DOS 33 IV Các đặc điểm B-virus 37 Phân loại B-virus 37 Một số kỹ thuật B-virus 38 V Các đặc điểm F-virus 41 Kỹ thuật lây lan 41 Kỹ thuật đảm bảo tính tồn 42 Kỹ thuật thường trú 43 Kỹ thuật nguy trang gây nhiễu 44 Kỹ thuật phá hoại 45 Chương III Khảo sát virus One Half 46 Chuẩn bị cho trình khảo sát 46 Phân tích Master Boot bị nhiễm virus One Half 46 Mã Assembly phần đầu virus One Half ĐỒ ÁN TỐT NGHIỆP Master Boot bị nhiễm 48 Khảo sát phần thân virus One Half 49 Các modul Assembler phần thân One Half 50 Mô tả công việc khôi phục Master Boot phần liệu bị mã hoá 58 Khảo sát ngắt 13h, ngắt 21h ngắt 1Ch virus One Half chiếm 59 Khảo sát file COM bị nhiễm virus One Half 64 Khảo sát file EXE bị nhiễm virus One Half 68 Chương IV Thiết kế chương trình chống virus 76 Kiểm tra nhớ 76 Kiểm tra Master Boot Boot Sector 79 Kiểm tra file 84 Hướng dẫn sử dụng chương trình 98 Nhận xét, kết luận 99 Phụ lục Liệt kê chương trình nguồn 100 File TESTVIR.C 100 File TESTMEM.ASM 106 File TESTMAST.ASM 111 File TESTFILE.ASM 126 File LIB.ASM 153 File SCR.ASM 159 Tài liệu tham khảo 161 ĐỒ ÁN TỐT NGHIỆP LỜI NÓI ĐẦU Virus tin học nỗi băn khoăn lo lắng người làm công tác tin học, nỗi lo sợ người sử dụng máy tính bị nhiễm virus Khi máy tính bị nhiễm virus, họ biết trông chờ vào phần mềm diệt virus có thị trường, trường hợp phần mềm không phát không tiêu diệt được, họ bị lâm phải tình khó khăn, phải làm Vì lý đó, có cách nhìn nhận hệ thống, chế nguyên tắc hoạt động virus tin học cần thiết Trên sở đó, có cách nhìn đắn virus tin học việc phòng chống, kiểm tra, chữa trị cách phân tích, nghiên cứu virus xuất Đồ án giải vấn đề vừa nêu Nó chia làm chương: Chương I Đặt vấn đề Chương II Tổng quan virus hệ thống Chương III Khảo sát virus One Half Chương IV Thiết kế chương trình chống virus Phần phụ lục cuối đồ án liệt kê toàn chương trình nguồn chương trình kiểm tra khôi phục virus One Half Trong trình xây dựng đồ án này, nhận nhiều giúp đỡ thầy cô giáo, bạn bè đồng nghiệp gia đình Tôi xin cảm ơn giúp đỡ nhiệt tình thầy Nguyễn Thanh Tùng, thầy giáo trực tiếp hướng dẫn đề tài tốt nghiệp tôi, cảm ơn thầy cô giáo Khoa Tin học, thầy cô giáo cán Trung tâm bồi dưỡng cán Trường Đại học Bách khoa Hà nội tạo điều kiện giúp đỡ hoàn thành đồ án ĐỒ ÁN TỐT NGHIỆP Tôi xin cảm ơn bạn bè đồng nghiệp, người thân gia đình tạo điều kiện, động viên trình làm đồ án Vì điều kiện thời gian không nhiều, kinh nghiệm hạn chế, không tránh khỏi thiếu sót Tôi mong nhận ý kiến đóng góp thầy cô giáo đồng nghiệp để chương trình sau tốt ĐỒ ÁN TỐT NGHIỆP Chương I ĐẶT VẤN ĐỀ Mặc dù virus tin học xuất từ lâu giới nước ta, song người sử dụng người làm công tác tin học, virus tin học vấn đề nan giải, nhiều gây tổn thất mát liệu đĩa, gây cố trình vận hành máy Sự nan giải có nhiều lý do: Thứ nhất, kiến thức mức hệ thống khó kiến thức lập trình ngôn ngữ bậc cao chương trình ứng dụng, đặc biệt thông tin cần thiết hệ thống không DOS thức công bố thông tin dành riêng (Reseved), điều làm cho người đề cập mức hệ thống không nhiều Thứ hai, tài liệu virus tin học phổ biến, có lẽ người ta nghĩ có tài liệu đề cập tới virus cách tỷ mỷ, hệ thống số người tò mò, nghịch ngợm viết virus tăng lên nữa! Thứ ba, số lượng virus xuất đông đảo, virus có đặc thù riêng, cách hoạt động riêng cách phá hoại riêng Để tìm hiểu cặn kẽ virus thời gian ngắn được, điều làm nản lòng người lập trình muốn tìm hiểu virus Tuy xuất nhiều chương trình tiêu diệt virus khôi phục lại đĩa, khôi phục lại file bị nhiễm song trường hợp cụ thể, phần mềm không giải vấn đề Có nhiều lý do: Thứ nhất, chương trình tiêu diệt số loại virus mà biết Thứ hai, biết sau virus xuất hiện, nghiên cứu mã nhận biết đưa vào danh mục, chương trình có khả tiêu diệt Điều ĐỒ ÁN TỐT NGHIỆP có nghĩa có loại virus xuất máy tính mà chương trình kiểm tra virus thông báo "OK" Đặc biệt virus người lập trình nước viết, hầu hết không cập nhật vào chương trình kiểm tra tiêu diệt virus SCAN, F-PROT, UNVIRUS, Vì lý nêu trên, việc phòng chống virus biện pháp tốt để tránh việc virus xâm nhập vào hệ thống máy Trong trường hợp phát có virus xâm nhập, việc sử dụng chương trình diệt virus có mặt thị trường, việc hiểu biết chế, đặc điểm phổ biến virus kiến thức mà người làm công tác tin học nên biết để có xử lý phù hợp Nội dung đồ án đưa số phân tích mảng kiến thức hệ thống, nguyên tắc thiết kế, hoạt động loại virus nói chung, áp dụng phân tích virus One Half Trên sở đó, đề cập tới phương pháp phòng tránh, phát phân tích với virus Các kiến thức cộng với phần mềm diệt virus có thị trường có tác dụng việc hạn chế lây lan, phá hoại virus nói chung Chương II TỔNG QUAN I GIỚI THIỆU TỔNG QUÁT VỀ VIRUS TIN HỌC Virus tin học Thuật ngữ virus tin học dùng để chương trình máy tính tự chép lên nơi khác (đĩa file) mà người sử dụng không hay biết Ngoài ra, đặc điểm chung thường thấy virus tin học tính phá hoại, gây lỗi thi hành, thay đổi vị trí, mã hoá huỷ thông tin đĩa ĐỒ ÁN TỐT NGHIỆP Ý tưởng lịch sử Lý thuyết chương trình máy tính tự nhân lên nhiều lần đề cập tới từ sớm, trước máy tính điện tử đời Lý thuyết đưa năm 1949 Von Neumann, báo nhan đề 'Lý thuyết cấu phần tử tự hành phức tạp' (Theory and Organization of Complicated Automata) Sau máy tính điện tử đời, xuất trò chơi tên 'Core War', số thảo chương viên hãng AT&T's Bell phát triển Trò chơi đấu trí hai đoạn mã hai thảo chương viên, đoạn mã cố gắng tự nhân lên tiêu diệt đoạn mã đối phương Đến 5/1984, Core War mô tả báo chí bán trò chơi máy tính Những virus tin học tìm thấy máy PC vào khoảng 1986-1987 Các virus thường có xuất phát điểm trường Đại học, nơi có sinh viên giỏi, thích tự khẳng định mình! Phân loại: Thông thường, dựa vào đối tượng lây lan file hay đĩa mà virus chia thành hai nhóm chính: - B-virus: Virus công lên Master Boot hay Boot Sector - F-virus: Virus công lên file khả thi Mặc dù vậy, cách phân chia không xác Ngoại lệ có virus vừa công lên Master Boot (Boot Sector) vừa công lên file khả thi Để có cách nhìn tổng quan virus, xem chúng dành quyền điều khiển ĐỒ ÁN TỐT NGHIỆP a B-virus Khi máy tính bắt đầu khởi động (Power on), ghi phân đoạn đặt 0FFFFh, ghi khác đặt Như vậy, quyền điều khiển ban đầu trao cho đoạn mã 0FFFFh: 0h, đoạn mã thực lệnh nhảy JMP FAR đến đoạn chương trình ROM, đoạn chương trình thực trình POST (Power On Self Test - Tự kiểm tra khởi động) Quá trình POST kiểm tra ghi, kiểm tra nhớ, khởi tạo Chip điều khiển DMA, điều khiển ngắt, điều khiển đĩa Sau tìm Card thiết bị gắn thêm để trao quyền điều khiển cho chúng tự khởi tạo lấy lại quyền điều khiển Chú ý đoạn chương trình ROM (Read Only Memory) nên sửa đổi, chèn thêm đoạn mã khác Sau trình POST, đoạn chương trình ROM tiến hành đọc Boot Sector đĩa A Master Boot đĩa cứng vào RAM (Random Acess Memory) địa 0:7C00h trao quyền điều khiển cho đoạn mã lệnh JMP FAR 0:7C00h Đây chỗ mà B-virus lợi dụng để công vào Boot Sector (Master Boot), nghĩa thay Boot Sector (Master Boot) chuẩn đoạn mã virus, quyền điều khiển trao cho virus, tiến hành hoạt động trước, sau tiến hành thao tác thông thường: Đọc Boot Sector (Master Boot) chuẩn mà cất giấu vào 0:7C00h trao quyền điều khiển cho đoạn mã chuẩn này, người sử dụng có cảm giác máy tính hoạt động bình thường b F-virus ĐỒ ÁN TỐT NGHIỆP Khi DOS tổ chức thi hành File khả thi (bằng chức 4Bh ngắt 21h), tổ chức lại vùng nhớ, tải File cần thi hành trao quyền điều khiển cho File F-virus lợi dụng điểm cách gắn đoạn mã vào file vị trí mà DOS trao quyền điều khiển cho File sau tải vào vùng nhớ Sau Fvirus tiến hành xong hoạt động mình, xếp, bố trí trả lại quyền điều khiển cho File File lại tiến hành hoạt động bình thường, người sử dụng biết Trong loại B-virus F-virus, có số loại sau dành quyền điều khiển, tiến hành cài đặt đoạn mã vùng nhớ RAM chương trình thường trú (TSR), vùng nhớ nằm tầm kiểm soát DOS, nhằm mục đích kiểm soát ngắt quan trọng ngắt 21h, ngắt 13h, Mỗi ngắt gọi, virus dành quyền điều khiển để tiến hành hoạt động trước trả lại ngắt chuẩn DOS Để có sở việc khảo sát virus, cần có phân tích để hiểu rõ cấu trúc đĩa, đoạn mã Boot Sector (Master Boot) cách thức DOS tổ chức, quản lý nhớ tổ chức thi hành File khả thi II ĐĨA - TỔ CHỨC THÔNG TIN TRÊN ĐĨA Cấu trúc vật lý Các loại đĩa (đĩa cứng đĩa mềm) lưu trữ thông tin dựa nguyên tắc từ hoá: Đầu từ đọc-ghi từ hoá phần tử cực nhỏ bề mặt đĩa Dữ liệu đĩa ghi theo nguyên tắc rời rạc (digital), nghĩa mang giá trị Để tổ chức thông tin đĩa, đĩa phải địa hoá Nguyên tắc địa hoá dựa khái niệm sau đây: a Side: ĐỒ ÁN TỐT NGHIỆP Đó mặt đĩa, đĩa mềm có hai mặt đĩa, đĩa cứng có nhiều mặt đĩa Để làm việc với mặt đĩa có đầu từ tương ứng, người ta gọi Header Side đánh số 0, chẳng hạn đĩa mềm, mặt mặt 0, mặt mặt 1, đĩa cứng tương tự đánh số 0,1,2,3 b Track: Là vòng tròn đồng tâm mặt đĩa, nơi tập trung phần tử từ hoá bề mặt đĩa để lưu trữ thông tin Các track đánh số từ bên vào trong, c Cylinder: Một track thứ tự mặt đĩa tham chiếu đến phần tử nhất, Cylinder Số hiệu Cylinder số hiệu track Cylinder d Sector: Bộ điều khiển đĩa thường thiết kế để đọc ghi lần phân đoạn track, phân đoạn gọi sector, hệ điều hành DOS, dung lượng sector 512 byte Các sector track đánh địa chỉ, thông thường người ta sử dụng phương pháp đánh số sector mềm, nghĩa mã hoá địa sector gắn vào phần đầu sector Ngoài khái niệm Sector, DOS đưa khái niệm Cluster, nhằm mục đích quản lý đĩa tốt Cluster bao gồm tập hợp Sector, đơn vị mà DOS dùng để phân bổ lưu trữ file đĩa Tuỳ dung lượng đĩa mà số lượng Sector Cluster 1, (đối với đĩa mềm) 4, 8, 16 (đối với đĩa cứng) Cấu trúc logic: Đối với loại đĩa, DOS tổ chức đĩa thành hai phần: Phần hệ thống phần liệu Phần hệ thống bao gồm ba phần 10 ĐỒ ÁN TỐT NGHIỆP con: Boot Sector, bảng FAT (File Alocation Table) Root Directory Đối với đĩa cứng, DOS cho phép chia thành nhiều phần khác nhau, có cấu trúc đặc biệt khác Partition Table Sau đề cập tới phần một: a Boot Sector Đối với đĩa mềm, Boot Sector chiếm Sector 1, Side 0, Cylinder Đối với đĩa cứng, vị trí dành cho bảng Partition, Boot Sector chiếm sector ổ đĩa logíc Khi khởi động máy, Boot Sector đọc vào địa 0: 7C00h trao quyền điều khiển Đoạn mã Boot Sector có nhiệm vụ sau: - Thay lại bảng tham số đĩa mềm (ngắt 1Eh) - Định vị đọc Sector Root vào địa 0:0500h - tìm, đọc file hệ thống có trao quyền điều khiển cho chúng Ngoài ra, Boot Sector chứa bảng tham số quan trọng đến cấu trúc đĩa, bảng tham số bắt đầu offset 0Bh Boot Sector, cụ thể cấu trúc sau: 11 ĐỒ ÁN TỐT NGHIỆP Offset Siz e +0h +3h Nội dung JMP xxxx Giải thích Lệnh nhảy đến đầu đoạn mã Boot Tên hệ thống format đĩa Start of BPB (Bios Parameter Block) +0Bh SectSiz Số byte Sector +0Dh ClustSiz Số Sector Cluter +0Eh ResSecs Số lượng Sector dành riêng (trước FAT) +10h FatCnt Số bảng FAT +11h RootSiz Số đầu vào tối đa cho Root (32 byte cho đầu vào) +13h TotSecs Tổng số sector đĩa (hoặc Partition) trường hợp dung lượng < 32MB +15h Media Media descriptor đĩa (giống byte đầu bảng FAT) +16h FatSize Số lượng Sector cho bảng FAT End of BPB +18h TrkSecs +1Ah HeadCnt Số lượng đầu đọc ghi +1Ch HidnSec Số sector dấu mặt (được dùng cấu trúc Partition) +1Eh Số lượng Sector track Đầu đoạn mã Boot Sector 12 ĐỒ ÁN TỐT NGHIỆP Trên bảng tham số đĩa format đĩa DOS Version trước Từ DOS Version 4.0 trở đi, có mở rộng để quản lý đĩa có dung lượng lớn 32MB, mở rộng offset +1Ch để giữ nguyên cấu trúc trước Phần mở rộng thêm có cấu trúc sau: 13 ĐỒ ÁN TỐT NGHIỆP Offse Size Nội dung t Giải thích +1Ch HidnSec Số Sector dấu mặt (đã điều chỉnh lên 32 bit) +20h TotSec Tổng số Sector đĩa giá trị offset +13h +24h PhsDsk Số đĩa vật lý (0: đĩa mềm, 80: đĩa cứng 1, 81: đĩa cứng 2) +25h Resever dành riêng +26h +27h Serial Là số nhị phân 32 bit cho biết Serial Number +2Bh B Volume Volume label +36h +3Eh Ký hiệu nhận diện DOS Version x.xx Loại bảng FAT 12 hay 16 bit Thông tin dành riêng DOS Đầu đoạn mã chương trình Phần mã Boot Sector phân tích cách chi tiết phần sau b FAT (File Alocation Table) Bảng FAT vùng thông tin đặc biệt phần hệ thống, dùng để lưu trạng thái Cluster đĩa, qua DOS quản lý phân bố File Cách tham chiếu đến địa đĩa thông qua số hiệu Side, Cylinder, Sector cách làm ngắt 13h BIOS cách làm điều khiển đĩa Ngoài cách tham chiếu trên, 14 ĐỒ ÁN TỐT NGHIỆP DOS đưa cách tham chiếu khác theo thông số: số hiệu Sector Các Sector đánh số cách từ Sector 1, Track 0, Side hết số Sector Track này, chuyển sang Sector 1, Track 0, Side 1, Tất Sector Cylinder đánh số trước DOS chuyển sang Track Cách đánh số gọi đánh số Sector logic, DOS sử dụng cho tác vụ Khái niệm Cluster dùng để phân bổ đĩa để lưu trữ File, bắt đầu đánh số Cluster từ Sector phần liệu (phần sau Root) Số hiệu để đánh số Cluster 2, nhằm mục đích thống cách quản lý thông tin bảng FAT Nội dung FAT: Mỗi Cluster đĩa DOS quản lý entry, hai entry dùng để chứa thông tin nhận dạng đĩa, lý Cluster đánh số Entry chứa thông tin Cluster 1, Entry chứa thông tin Cluster 2, Giá trị entry bảng FAT có ý nghĩa sau: Giá trị Ý nghĩa Cluster trống, phân bổ (0)002(F)FEF Cluster chứa liệu File đó, giá trị số Cluster Chain (F)FF0(F)FF6 Dành riêng, không dùng (F)FF7 Cluster hỏng (F)FF8- Là Cluster cuối Chain 15 ĐỒ ÁN TỐT NGHIỆP (F)FFF Đối với đĩa mềm đĩa cứng có dung lượng nhỏ, DOS sử dụng bảng FAT-12, nghĩa sử dụng 12 bit (1,5 byte) cho entry Đối với đĩa cứng có dung lượng lớn, DOS sử dụng bảng FAT-16, nghĩa sử dụng byte cho entry Cách định vị hai bảng FAT sau: - Đối với FAT-16: Vì entry chiếm byte, nên vị trí Cluster giá trị Cluster thời nhân với - Đối với FAT-12: Vì entry chiếm 1,5 byte, nên vị trí Cluster giá trị Cluster thời nhân với 1,5 Giá trị cụ thể 12 bit thấp số thứ tự số Cluster chẵn, ngược lại 12 bit cao word vị trí Cluster Đoạn chương trình sau minh họa cách định vị bảng FAT Vào: SI : Số Cluster đưa vào Biến FAT_type lưu loại bảng FAT, bit = FAT 16 bit Ra: DX : Số Cluster 16 ĐỒ ÁN TỐT NGHIỆP Locate_Cluster proc mov ax,3 test FAT_type,4 je FAT_12 inc ax FAT_12: mul si shr ax,1 mov bx,ax mov dx,FAT_buff[bx] test FAT_type,4 jne FAT_16 mov cl,4 test si,1 je Chan shr dx,cl ; Lẻ lấy 12 bit cao Chan: and dh,0F ; Chẵn lấy 12 bit thấp FAT_16: ret Locate_Cluster endp Một ví dụ phần đầu bảng FAT: 0 a b c d e 0f 0 F F F F F F F 0 0 0 0 F F F F 0 0 0 0 A 0 B F F F F F F F F B F F F F F F F F 17 ĐỒ ÁN TỐT NGHIỆP Mỗi entry bảng FAT chiếm byte (FAT 16bit), entry bảng FAT giá trị nhận dạng đĩa (FFF8FFFF), giá trị Cluster trỏ tới Cluster 3, giá trị Cluster lại trỏ tới Cluster 4, Cluster có giá trị FFFF, nghĩa kết thúc File c Root Directory Root Directory gọi thư mục gốc, nằm sau FAT Nó có nhiệm vụ lưu giữ thông tin thư mục File đĩa Mỗi File đặc trưng entry (đầu vào) Root Director, entry chiếm 32 byte lưu giữ thông tin sau đây: Offset Kích thước +0h Tên file canh trái +8h Phần mở rộng canh trái +0Bh Thuộc tính file +0Ch 0Ah +16h Thời gian tạo lập hay cập nhật lần cuối +18h Ngày tháng tạo lập hay cập nhật lần cuối +1Ah Số Cluster bắt đầu file (trong FAT) +1Ch Kích thước file Nội dung Dành riêng Byte thuộc tính có ý nghĩa sau: =1: File đọc (Read Only) =1: File ẩn (Hidden) 18 ĐỒ ÁN TỐT NGHIỆP =1: File hệ thống (System) =1: Volume Label =1: Sub Directory =1: File chưa backup (thuộc tính archive) Ký tự phần tên file có ý nghĩa sau: Entry trống, chưa dùng (dấu chấm) Dấu hiệu dành riêng cho DOS, dùng cấu trúc thư mục 0E5h Ký tự sigma thông báo cho DOS biết entry file bị xoá Một ký tự khác Entry lưu giữ thông tin file 19 ... dẫn đề tài tốt nghiệp tôi, cảm ơn thầy cô giáo Khoa Tin học, thầy cô giáo cán Trung tâm bồi dưỡng cán Trường Đại học Bách khoa Hà nội tạo điều kiện giúp đỡ hoàn thành đồ án ĐỒ ÁN TỐT NGHIỆP Tôi... Cylinder, Sector cách làm ngắt 13h BIOS cách làm điều khiển đĩa Ngoài cách tham chiếu trên, 14 ĐỒ ÁN TỐT NGHIỆP DOS đưa cách tham chiếu khác theo thông số: số hiệu Sector Các Sector đánh số cách từ Sector... 161 ĐỒ ÁN TỐT NGHIỆP LỜI NÓI ĐẦU Virus tin học nỗi băn khoăn lo lắng người làm công tác tin học, nỗi lo sợ người sử dụng máy tính bị nhiễm virus Khi máy tính bị nhiễm virus, họ biết trông chờ vào

Ngày đăng: 06/09/2017, 08:56

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan