1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Virus tin học huyền thoại hay thực tế

104 335 0

Đ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

Author: Ngô Anh Vũ Copier: Nguyễn Châu Tuấn Tin3-K43 Virus tin học Huyền thoại thực tế Hà nội tháng 2-2001 http://www.ebook.edu.vn lời nói đầu Mặc dù virus tin học xuất lâu giới nước Và không ngạc nhiên biết máy tính bị nhiễm virus Thế nhưng, thực đáng ngạc nhiên chưa có sách đề cập đến virus cách đầy đủ chi tiết Sự thiếu vắng thông tin vô tình mà quan niệm cho phổ biến thông tin không lợi ích mà làm gia tăng số lượng virus lên, làm tăng nguy mát liệu Xét khía cạnh này, nhà sản xuất phần mềm chống virus đồng tình Chính thiếu hiểu biết thực giả tạo virus với thổi phồng đáng báo chí biến virus tin học bé nhỏ thành ‘ngoáo ộp’ khổng lồ làm kinh hoàng cho người sử dụng tội nghiệp máy họ bị tượng mà nghi ngờ virus Cái giá phải trả cho thiếu hiểu biết lại to lớn, sai lệch liệu lỗi logic chương trình gián đoạn vài ngày để backup liệu format lại đĩa, file tự nhiên tăng kích thước gây hoang mang Đó chưa kể đến đổ lỗi cho virus tin học thiếu hiểu biết Mặt khác, virus tin học nghĩa virus có kích thước chương trình cực nhỏ bao gồm chức khó khăn nên đòi hỏi virus thiết kế trực tiếp ngôn ngữ Assembler bao hàm giải thuật tối ưu kĩ thuật cao, xét khía cạnh đáng cho học tập Chính lí đó, sách đời nhằm cung cấp cho độc giả thông tin cần thiết đắn virus, từ rút học bổ ích cần thiết việc phát cứu chữa hậu mà virus gây Dù soạn với thông tin bản, sách đòi hỏi độc giả phải có kiến thức Assembler (vì virus thiết kế ngôn ngữ này) để hiểu phân tích virus cách tỉ mỉ Tác giả mục đích hướng dẫn độc giả phương pháp để thiết kế virus, tốt bạn đọc đừng có ý định bạn nạn nhân gánh chịu hậu gây Các virus khảo sát sách tất virus biết thành phố giới, đó, số virus biết nước chiếm gần phân nửa Xin cảm ơn giúp đỡ quí báu đồng nghiệp việc hiệu đóng góp nhiều ý kiến hay cho sách Vì lần xuất đầu tiên, chắn sách nhiều điều thiếu sót, tác giả mong nhận nhiều ý kiến đóng góp độc giả Địa liên lạc tác giả: Ngô Anh Vũ Trung tâm CESAIS Ban tin học 17 Phạm Ngọc Thạch Q.3 TP Hồ Chí Minh Mục Lục Lời nói đầu Giới thiệu tổng quát virus tin học I Virus Trjan horse II ý tưởng lịch sử III Cách thức lây lan phá hoại Chương 1: Đĩa - Sơ lược đĩa I Cấu trúc vật lí 13 II Cấu trúc logic 17 III Các tác vụ truy xuất đĩa 28 Chương 2: B - virus I Phương pháp lây lan 49 II Phân loại 51 III Cấu trúc chương trình B - virus 52 IV Các yêu cầu B - virus 54 V Phân tích kĩ thuật 56 VI Phân tích B - virus mẫu VII Cách phòng chống chữa trị virus Chương 3: Quản lí file vùng nhớ DOS I Quản lí tổ chức thi hành file DOS II Tổ chức quản lí vùng nhớ Chương 4: F - virus I Phương pháp lây lan 49 II Phân loại 51 III Cấu trúc chương trình B - virus 52 IV Các yêu cầu B - virus 54 V Phân tích kĩ thuật 56 VI Phân tích B - virus mẫu VII Cách phòng chống chữa trị virus http://www.ebook.edu.vn Giới thiệu tổng quát virus tin học I - Virus Tin Học Trojan Horse Luật pháp nước có chỗ không đồng nhất, có nước chấp nhận bảo vệ quyền phần mềm, có nước lại không đề cập cách rõ ràng đến vấn đề Cùng với phát triển vũ bão phần cứng, kĩ thuật chép đạt đến trình độ cao Những phần mềm chép COPYIIPC, COPYWRIT cho phép tạo đĩa có thành phần giống đĩa gốc làm thiệt hại đáng kể cho hãng sản xuất phần mềm Lợi dụng kẽ luật pháp nước, số nơi xuất tay ‘cướp’ phần mềm chuyên nghiệp Những phần mềm vừa đưa thị trường ngày hôm trước bị phá khóa (khóa hiểu mã đưa vào thi hành chương trình, đĩa gốc ), copy lại, chí sửa đổi tên tác giả, tung thị trường với giá rẻ chưa có Những hành động vô đạo đức thách thức nhà sản xuất phần mềm, đó, ý tưởng đưa đoạn mã phá hoại (destructive code) vào phần mềm với mục đích phá hủy liệu phần mềm không nằm đĩa gốc ý tưởng lạ Nhưng việc giấu đoạn mã chất đoạn mã lại tùy thuộc vào nhà sản xuất không thừa nhận (tất nhiên, kể nhà sản xuất nó) chứng kiến điều Mặt khác, tin học trở thành phổ cập cho toàn giới, cấu trúc nội tại, kĩ thuật lập trình hướng dẫn tỉ mỉ nghiêm túc tiếp cận người cụ thể với tầng lớp niên Với đầy đủ kiến thức tính hiếu thắng, đua tài tuổi trẻ, tư tưởng loạn hay tự khẳng định qua chương trình mang tính chất phá hoại gây nguy hiểm thực tế không ví dụ chứng minh cho điều Căn vào tính chất đoạn mã phá hoại, ta chia chúng thành hai loại: virus trojan horse 1/ Trojan horse: Thuật ngữ dựa vào điển tích cổ, đoạn mã ‘cắm’ vào bên phần mềm, cho phép xuất tay phá hoại cách bất ngờ ‘anh hùng’ xông từ bụng ngựa thành Troa Trojan horse đoạn mã HOàN TOàN KHÔNG Có TíNH CHấT LÂY LAN, nằm phần mềm định Đoạn mã phá hoại vào thời điểm xác định tác giả định trước đối tượng chúng thông tin đĩa format lại đĩa, xóa FAT, Root Thông thường phần mềm có chứa Trojan horse phân phối version bổ sung, hay mới, điều trừng phạt người thích chép phần mềm nơi có nguồn gốc không xác định Tuy nhiên tượng này, Việt nam nói chung thành phố ta chưa xuất Và dễ thấy tầm hoạt động mức phá hoại hoạt động máy đơn vô hạn chế 2/ Virus tin học: Thuật ngữ nhằm chương trình máy tích tự chép lên đĩa, file khác mà người sử dụng không hay biết Thông thường virus mang tính phá hoại, gây lỗi thi hành, lệch lạc hay hủy liệu So với Trojan horse, virus mang tầm vóc ‘vĩ đại’ hơn, lan truyền xa tác hại vô khủng khiếp thành phố, virus xuất sớm gây nhiều tác hại với ưu virus so với Trojan horse , báo nhan đề “Lí thuyết cấu phần tử tự hành phức tạp “(Theory and Organization of Complicated Automata) Trong báo mình, ông nêu lí thuyết tự nhân lên nhiều lần chương trình máy tính Những đồng nghiệp ông dè bỉu nhiều ý tưởng điều dễ hiểu máy tính điện tử (electronic computer) phát triển nhiều năm sau Mười năm sau đó, chi nhánh hãng AT&T’s Bell, ba thảo chương viên trẻ tuổi phát triển trò chơi tên ‘Core War’, ba người tên Mc Ilroy, Victor Vysottsky Robert Morris, người nắm vững cấu trúc nội máy ‘Core War’ đấu trí hai đoạn mã hai thảo chương viên Mỗi đấu thủ đưa chương trình có khả tự tái tạo (reproducing program) gọi Organism vào nhớ máy tính Khi bắt đầu chơi Organism, đấu thủ cố gắng phá hủy organism đối phương tái tạo organism Đấu thủ thắng đấu thủ phát triển nhiều lần cấu Trò chơi ‘Core War’ giữ kín năm 1983, Ken Thompson, tay chơi lỗi lạc viết version đầu cho hệ điều hành UNIX, để lộ nhận phần thưởng danh dự giới kỹ nghệ điện tử - Giải thưởng A.M Turing Trong diễn văn mình, ông đưa ý tưởng phương pháp làm virus Thompson đề cập đến Core War sau tiếp tục khuyến khích thính giả làm thử! Tháng 5/1984 tờ báo Scientific America có đăng báo mô tả Core War cung cấp cho đọc giả hội mua lời hướng dẫn trò chơi - gởi đến tận nhà với giá USD cước phí bưu điện! Đầu tiên, virus tin học bắt đầu máy lớn CREEPER (1970, RABBIT (1974), ANIMAL (1980) Sau bắt đầu xuất máy PC Đã có số tài liệu cho virus tin học PC năm 1987, nhiên điều không chắn virus Brain ‘thông báo’ đời từ năm 1986! Virus máy IBM PC phát nhanh chóng trở nên tiếng Lehigh virus (vì xuất trường Đại học này) vào trước lễ Tạ ơn năm 1987 Cùng thời với virus này, virus khác âm thầm đổ từ Pakistan vào Mĩ Brain với mục tiêu trường Đại học Delaware Một nơi khác giới tường thuật xuất virus: Đại học Hebrew - Israel Tất có chung điểm: từ trường Đại học, nơi có sinh viên giỏi, hiếu động thích đùa Mặc dù xuất nhiều nơi giới, virus có chung phương pháp lây lan, không nắm rõ cách thức này, số người cảm thấy hốt hoảng diệt cách, máy tính bị nhiễm nhiễm lại virus Dù vậy, phải có phân loại chi tiết virus, làm cho dễ kiểm soát đưa phương pháp chữa trị thích hợp Do đó, người ta chia virus thành hai loại theo cách lây đối tượng lây Ta khảo sát đối tượng III - Cách Thức Lây - Phân Loại Dựa vào đối tượng lây lan file hay đĩa, ta chia virus thành hai nhóm chính: + B - virus (boot virus): virus công lên Boot sector hay Master boot http://www.ebook.edu.vn + F - virus (file virus): virus công lên file thi hành (dạng thi hành chức 4Bh DOS file dạng COM hay EXE) Dù vậy, cách phân chia nhất, mà không hẳn xác Vì sau này, F - virus phá hoại hay chèn mã phá hoại vào Boot sector, B - virus chèn đoạn mã vào file Tuy nhiên, tượng nhằm phá hoại không coi đối tượng để lây lan Dạng tổng quát virus biểu diễn sơ đồ sau: T×m file/®Üa NhiÔm ? Exit L©y Như giới thiệu định nghĩa virus, đoạn mã lúc phải trao quyền điều khiển Như vậy, rõ ràng virus phải khai thác chỗ hở mà máy ‘tự nguyện’ trao quyền điều khiển lại cho Thực tế có hai kẽ hở thế, mà ta xét sau đây: 1/ B - virus: Khi máy tính bắt đầu khởi động (Power on), ghi CPU xóa, ghi phân đoạn (segment) gán giá trị 0FFFFh, tất ghi lại xóa Lúc CS:IP dĩ nhiên trỏ đến 0FFFFh:0 Tại địa lệnh JMP FAR chuyển quyền điều khiển đến đoạn chương trình định sẵn ROM, đoạn chương trình thực trình POST (Power On Seft Test: tự kiểm tra khởi động) Quá trình POST kiểm tra ghi, kiểm tra nhớ, khởi tạo chíp điều khiển DMA, điều khiển ngắt, đĩa Nếu trình hoàn thành tốt đẹp, công việc dò tìm card thiết bị gắn thêm vào (thường thiết bị card điều khiển đĩa cứng hay hình) trao quyền điều khiển chúng tự khởi tạo sau lấy lại card hoàn thành xong phần khởi tạo Tuy phải ý: toàn đoạn chương trình nằm ROM, có tính chất Chỉ Đọc nên sửa đổi chèn đoạn mã chương trình khác vào Sau việc khởi tạo hoàn thành tốt đẹp, lúc đoạn chương trình ROM tiến hành đọc Boot sector từ đĩa vật lí (là đĩa A) vào RAM địa 0:07C00h (Boot sector sector đĩa nằm sector 1, head 0, track 0) Nếu việc đọc không thành công, (không có đĩa ổ đĩa ) Boot Master đĩa cứng đọc vào (nếu có đĩa cứng) Giả sử việc đọc thành công, quyền điều khiển trao cho đoạn mã nằm Boot record lệnh JMP FAR 0:07C00 mà không cần biết đoạn mã làm Như vậy, đến lúc Boot record chứa đoạn mã nào, quyền điều khiển trao đoạn mã lại tiến hành format lại đĩa! Rõ ràng, kẽ hở mà máy mắc phải Nhưng điều dễ hiểu PC kiểm tra đoạn mã Boot record - ứng với hệ điều hành, version khác - đoạn mã khác Nếu tự kiểm điểm lại mình, bạn không khỏi giật số lần để quên đĩa mềm ổ đĩa Tuy vậy, may mắn đoạn mã Boot record lại hoàn toàn sạch, nghĩa format hệ điều hành hành chưa có sửa đổi, thay đoạn mã Lúc này, đoạn mã dò tìm, có tải file hệ thống vào vùng nhớ (nếu hệ điều hành MS-DOS, file có tên IO.SYS MSDOS.SYS) lần trao quyền điều khiển Lúc này, CONFIG.SYS (nếu có) đọc vào tiến hành khởi tạo device driver, định buffer file cho file cuối COMMAND.COM gọi (nếu lệnh SHELL CONFIG.SYS) để dấu nhắc A:\> quen thuộc xuất hình Lợi dụng kẽ hở này, B - virus công vào Boot sector, nghĩa thay Boot sector chuẩn đoạn mã virus, quyền điều khiển lúc trao cho virus trước Boot record nhận quyền điều khiển sau chuyện tiến hành cách bình thường Do đặc điểm lên trước hệ điều hành, virus phải tự làm hết chuyện Và điều dễ dàng với kích thước chương trình nhỏ bé (nếu không tin bạn thử định vị phân tích FAT mà không dùng đến thông tin từ DOS xem) 2/ F - virus: Sau COMMAND.COM gọi, lúc tìm file AUTO.EXEC.BAT để thi hành (nếu có) sau dấu nhắc xuất để chờ nhận lệnh Tất nhiên không dùng lệnh nội trú DOS để thi hành (trừ người bắt đầu học hệ điều hành DOS) Thông thường, người ta thi hành file Đơn giản muốn thi hành phần mềm Foxbase chẳng hạn cách đánh tên Mfoxplus dấu nhắc đợi lệnh DOS bấm phím Enter Lúc DOS tìm file có tên Mfoxplus.EXE May mắn thay file tìm thấy, DOS bắt đầu tổ chức lại vùng nhớ, tải lên trao quyền điều khiển mà không chút băn khoăn xem định làm có nguy hiểm không? May thay, kẽ hở thứ hai bị bỏ qua mà không gây phiền phức Sau thi hành xong trở dấu nhắc hệ điều hành cách an toàn Thực chất, kẽ hở thứ hai virus tận dụng Điều xảy quyền điều khiển thay trao cho file lại rẽ nhánh sang cho kẻ lạ mặt sống ‘kí sinh’ lên file? Điều có virus biết tất nhiên sau đó, kết phá hoại rõ ràng người sử dụng biết ội hệ điều hành mà ta chưa biết Qui ước: + Các số sách ngầm hiểu dạng thập lục thập phân không ghi rõ dạng + Các chương trình virus minh họa hầu hết Unassembler phần mềm D68 http://www.ebook.edu.vn đĩa - sơ lược đĩa Chương không nhằm mục đích khảo sát tường tận cấu trúc vật lí logic mà đơn giản nhằm cung cấp cho độc giả số thông tin thật cần thiết, tiện cho việc phân tích B-virus chương Dù vậy, có số thông tin bổ ích cho việc tham khảo I - Cấu Trúc Vật Lí Cấu trúc đĩa - dù vật lí hay logic, thực tế đề cập đến mức độ phức tạp, đĩa cứng Tuy nhiên, khái niệm lại vô đơn giản Các loại đĩa (cả đĩa cứng lẫn đĩa mềm) dựa vào tượng từ hóa để chứa liệu: đầu từ đọc ghi từ hóa phần tử cực nhỏ bề mặt, phần tử di chuyển qua đầu từ bị từ hóa Do hình dạng ban đầu đĩa hình tròn nên nhiều người lầm tưởng hình dạng bắt buộc, thực ra, bạn tạo đĩa với hình dạng bất kì, tồn ổ đĩa cho phép bạn truy xuất thông tin Khác với băng từ, đĩa ghi liệu dạng rời rạc (hoặc mang giá trị tối đa mang giá trị tối thiểu 0) Cách thể gọi digital Chúng ta bắt đầu với khái niệm Track 1/ Track: Nếu bạn đặt bút cho lên đĩa hát xoay Đường bút chì tạo thành đĩa hình tròn Và bạn việc coi đĩa đĩa mềm, đầu bút chì đầu từ đọc ghi Đường bút chì tạo nên có tên Track Do Track hình tròn chiếm phần nhỏ, nên đĩa, ta tạo nên nhiều hình tròn đồng tâm để có nhiều Track 2/ Side: Bất đĩa mềm có hai mặt (Side), đó, không bắt buộc phải sử dụng mặt đĩa (mặc dù DOS làm điều này, sau đó, sửa sai) Ghi liệu lên hai mặt đĩa rõ ràng mang lại tính king tế khả chứa liệu đĩa tăng lên gấp đôi mà không cần tốn thêm ổ đĩa thứ hai Đơn giản đặt thêm đầu đọc thứ hai phía bên để tạo thành ‘gọng kìm’ Hai mặt đánh số mặt mặt 3/ Cylinder: Rõ ràng, thuận lợi thứ hai đĩa hai mặt: liệu ghi hai lần nhanh trước đầu đọc chuyển sang Track Dữ liệu ghi lên Track mặt bên sau Track mặt bên kia, cuối cung chuyển sang Track khác Một cặp Track nằm đối xứng tham chiếu đến phần tử Cylinder Để thuận lợi cho việc tham chiếu, Track Cylinder đánh số Track đánh số Track Track mặt Track 0, Side 0; Track mặt Track Side Những Track gọi chung Cylinder Bạn nghe nói đĩa mềm 360 Kb, đĩa mềm loại có 80 Track đánh số từ đến 79 Thông thường, việc đánh số máy tính từ 1, song có ngoại lệ Sector bắt đầu đánh số từ Cluster đánh số mà chúng xét sau Đối với đĩa cứng, mô hình đơn giản đĩa mềm xếp song song với thành hình trụ Đĩa Side 0, đáy Side đĩa thứ hai có hai mặt Side Tập hợp track tham khảo tên gọi Cylinder Tất nhiên số đầu đọc tăng theo Khối lượng liệu track đĩa cứng thay đổi tùy thuộc máy, nhiên, thường từ 8Kb đến 12Kb track 4/ Sector: Mặc dù đọc/ghi liệu lên đĩa lúc đến 12 Kb, thực tế, không dám dùng đến khối lượng lớn đến Bộ điều khiển đĩa thường thiết kế để đọc ghi lần phân đoạn Track Số byte phân đoạn, gọi Sector, phụ thuộc vào phần cứng mà điều khiển đĩa vào hệ điều hành: nhà thiết kế tạo kích thước Sector khác hệ điều hành chọn kích thước Thông thường, kích thước 128, 256, 1024 byte Đối với hệ điều hành DOS, kích thước chọn 512 byte cho Sector với tất loại đĩa Trên đĩa mềm 360 Kb, Track đạt tới 10 Sector, nhiên, vấn đề an toàn liệu, DOS chọn Sector cho Track Chính điều này, thấy đĩa 40 Track có: 40Track * 2Side * 9Sector 512byte = 360 Kb Đối với đĩa cứng, mật độ Track inch đạt đến 600 Track/inch, khả lưu trữ kiệu đĩa cứng lớn đĩa mềm nhiều Lúc này, để tham chiếu, phải mặt (Side) Track mà phải số Sector Track 5/ Đánh địa Sector: Khi đạt đến Track cần đọc/ghi, làm để nhận Sector cần tìm Có hai cách để định vị Sector, : + Đánh số Sector phương pháp cứng (Hard sectoring): Những lỗ bấm xung quanh đĩa lỗ có ý nghĩa đánh dấu bắt đầu Sector Phương pháp tỏ không hiệu nghiệm tốc độ truy xuất đĩa ngày tăng + Đánh số Sector mềm (Soft sectoring): Phương pháp mã hóa địa Sector thành liệu Sector gắn vào trước Sector Vì Sector đánh số xung quanh Track nên địa đơn giản số liên tiếp xung quanh Track (nhưng số đĩa thiết kế chống chép điều khác) Hiện nay, phương pháp đánh số mềm dùng rộng rãi Với phương pháp này, trước đĩa dùng, địa Sector phải ghi vào Sector (quá trình thực việc Format đĩa) Địa Sector thực phần thông tin liệu phần đầu Sector, số thông tin khác mà thiết nghĩ nêu làm rối cho độc giả 6/ Format vật lí: Ghi toàn địa Sector, thông tin khác vào phần đầu Sector gọi format vật lí hay format mức thấp, việc thực phần cứng điều khiển đĩa Trong trình format, phần mềm bắt điều khiển đĩa tiến hành format với thông số kích thước Sector công việc lại tự điều khiển đĩa phải làm Format vật lí phải thực trước đĩa đưa vào sử dụng Một trình độc lập thứ hai - format logic - phải thực sau trước đĩa chuẩn bị chứa liệu mức này, tùy theo cách tổ chức hệ điều hành, chia đĩa thành vùng tương ứng Trong thực tế, không ý đến đề có lệnh Format DOS Tuy nhiên để giải thích công việc cụ thể lệnh quan tâm đến Có thể giải thích sau : + Với đĩa mềm: đĩa cho dù format lần hay chưa đối xử “bình đẳng “như nhau, nghĩa DOS tiến hành forrmat vật lí, sau format logic nhằm khởi tạo vùng hệ thống liệu http://www.ebook.edu.vn Dễ thấy, đĩa qua lần format, trình format vật lí không cần thiết, trừ trường hợp muốn format vật lí, có trình format logic làm giảm thời gian format đĩa ý tưởng này, thực tế phần mềm chuyên dụng khai thác kĩ PCformat Central point, SafeFormat Norrton có option cho phép định tác vụ + Đối với đĩa cứng: đĩa cứng trước đưa thị trường format vật lí lí để format lại không thấy cần thiết Đối với trường hợp này, DOS không cần phải format vật lý mà đơn giản tiến hành format logic Trong trường hợp này, tốc độ format đĩa cứng nhanh không ì ạch đĩa mềm Sau qua format, đĩa sẵn sàng chứa liệu II - Cấu Trúc Logic phần trên, ta có đề cập đến format logic, lại không đưa chi tiết nào, sau ta xét chi tiết đến chúng Rõ ràng, đĩa có dung lượng lớn, việc quản lí liệu cho hiệu nhanh chóng vấn đề phức tạp Do đó, hệ điều hành cần thiết phải tổ chức cho vài cấu trúc giúp cho việc kiểm soát đĩa nhanh xác, cho biết phần dùng để chứa liệu, phần trống Cách ghi nhớ cấu trúc lên đĩa gọi format logic đĩa Dù loại đĩa nào, DOS tổ chức đĩa thành phần sau: Boot Sector, bảng FAT (file allocation table), Root directory phần liệu (ba phần đầu gọi tên Vùng hệ thống) Trên đĩa cứng, với dung lượng lớn, chia thành phần khác gọi Partition, phải thêm phần thứ Partition table Sau đây, khảo sát phần 1/ Boot Sector: Luôn chiếm Sector Track 0, Side đĩa, vậy, điều tuyệt đối đĩa mềm, đĩa cứng, vị trí phải nhường lại cho Partition table Boot sector đọc vào địa 0:07C00 sau máy thực xong trình POST Quyền điều khiển trao lại cho đoạn mã nằm Boot sector Đoạn mã có nhiệm vụ tải file hệ thống vào có Ngoài ra, Boot sector chứa bảng tham số quan trọng đến cấu trúc đĩa, bảng ghi vào trình format logic đĩa đĩa đĩa boot a Cấu trúc bảng tham số đĩa BPB (Bios Parameter Block): Bảng tham số offset 0B Boot sector có cấu trúc sau : offset +0 +3 +0Bh +DH +Eh +10h +11h 10 Siz Nội dung 2 JMP e SectSiz ClustSiz ResSecs FatCnt RootSiz xx:xx Lệnh nhảy gần đến đầu đoạn mã boot Tên công ty hay version Số byte sector < - Start of BPB Số sector cluster Số sector dành riêng (sector trước FAT) Số bảng FAT Số đầu vào tối đa cho Root (32 byte cho đầu vào) offs dw offset EndP segs dw EndP: mov AX, 4C00h int 21h EndProg: (Trích 1701 virus) ; Chấm dứt chương trình b Thường trú sau đoạt lại quyền điều khiển: Để thường trú, số Hacker đề nghị phương pháp vô sáng tạo, dựa vào chức DOS Cách dựa vào phương pháp thi hành chương trình hai lần mà đề cập chương trước Cách lấy tên chương trình thi hành môi trường DOS tổ chức, lần nữa, thi hành thân mình, sau giảm vùng nhớ xuống tối thiểu Sau file thi hành xong, quyền điều khiển lại trao cho virus, lúc tiến hành thường trú chức 31h DOS chương trình bình thường Các bước mà DOS đề nghị sau : + Giải phóng vùng nhớ không cần thiết + Tạo EPB + Tìm tên file khối môi trường thời + Dùng chức 4B thi hành lần + Nhận quyền điều khiển trả lại, dùng chức 4D để lấy mã lỗi chương trình + Dùng chức 31h để thường trú với BX kích thước virus, mã (exit code) mã lấy từ chức 4D Đoạn mã sau minh họa điều : ; EPB khai báo EPB : Env dw Cmd_off dw 80h cmd_seg dw FCB1_off dw FCB1_seg dw 05Ch FCB2_off dw FCB2_seg dw 06Ch ; Khởi tạo EPB mov CS:PSP_value, ES mov CS:Cmd_seg, ES mov CS:FCB1_seg, ES mov CS:FCB2_seg, ES ; Giải phóng vùng nhớ mov ES, CS:PSP_value mov AH, 04Ah int 21h 90 ; Tìm tên file khối môi trường mov ES, PSP_value mov ES, ES:[2Ch ] xor DI, DI mov CX, 7FFFh xor AL, AL Next: repne sacsb cmp ES:[DI], AL loopns Next mov DX, DI add DX, ; chuẩn bị gọi chức 4B mov AX, 4B00h push ES pop DS push CS pop ES mov BX, offset EPB pushf call far dword [Old_int21] ; Lấy mã lỗi mov AH, 4Dh int 21h ; Thường trú mov AH, 31h mov DX, 06C4h mov CL, shr DX, CL add DX, 10h int 21h (Trích Slow virus) ; ES trỏ đến khối môi trường ; Tìm cách dò dấu hiệu ; đầu tên file word ; có giá trị ; Tìm byte ; Byte = ? ; ES:DX trỏ đến tên file ; DS:DX trỏ đến tên file ; ES:BX trỏ đến EPB ; Gọi chức 4B ; Kích thước virus theo byte ; đổi sang đoạn Song phương pháp có hạn chế, lây lan COMMAND.COM COMMAND.COM lên lần đầu tiên, không trả quyền lại cho virus cả, mặt khác, virus lây tiếp dấu hiệu vùng nhớ cho biết virus trình đợi điều khiển Do đó, tất virus thiết kế theo phương pháp kiểm tra tên file với COMMAND.COM trước lây 4/ Kĩ thuật phá hoại: a TF - virus: Do TF - virus giành quyền điều khiển có lần, đếm cách đặn được, phần lớn TF - virus mang tính phá hoại ngẫu nhiên http://www.ebook.edu.vn 91 tiến hành file đối tượng Việc phá hoại tương đối nhỏ, đơn giản xóa file cách ngẫu nhiên, đổi lại ngày tạo file chẳng hạn b RF virus: Đối tượng phá hoại virus loại phong phú hơn, bao gồm hình, loa, đĩa Phần phá hoại “thi tài“ giải thuật ngắn gọn có hiệu suất cao Hiếm thấy virus mang tính phá hoại tàn khốc, sau nay, virus dễ bị phát hiện, không mang tính hiền hòa Kĩ thuật đếm giờ, số lần lây giống B virus Tuy vậy, ngắt thường chiếm RF - virus ngắt 1Ch ngắt (nếu đối tượng phá hoại loa) Các đoạn mã minh họa phần phá hoại xem phần phụ lục 5/ Kĩ thuật gây nhiễu ngụy trang a Ngụy trang: Một yếu điểm không cách tránh khỏi file đối tượng bị tăng kích thước Lượng tăng lên phụ thuộc vào việc có virus lây vào kĩ thuật lây Đây thách thức cho Hacker Song sau này, có cách giải lệnh DIR DOS dùng chức 11h 12h để lấy thông tin file (kể kích thước), đó, việc chi phối chức đánh lừa số người Nhưng điều gây hiệu ứng cho phần mềm dùng chức để copy file, so sánh hay tổ chức lấy việc thi hành file mà không thông qua DOS b Gây nhiễu: Nếu vấn đề ngụy trang đơn giản nhằm giải tượng tăng kích thước, vấn đề gây nhiễu lại có tầm quan trọng việc chống phần mềm antivirus có ý định “trục xuất“ virus khỏi file Thông thường, nhà chữa trị virus phải nắm virus cất dấu liệu file đối tượng đâu khôi phục lại Để làm điều này, họ phải tham khảo chương trình virus dễ theo dõi kích thước chương trình nhỏ Kĩ thuật gây nhiễu không cho họ có khả để làm việc này, làm điều kiện khó khăn logic chương trình Thông thường, virus thực : + Anti-debug: Các thảo chương viên thường dùng phần mềm debug (như DEBUG, D86, Turbo Debugger .) để theo dõi chương trình virus Các chương trình thực chất phải dùng ngắt để thi hành bước Tất nhiên điều không thực virus chi phối ngắt 3, xâm phạm vào đền ngắt dẫn đến kết cục không lường trước + EXE header giả: Khi kiểm tra virus file EXE, điều bắt buộc thảo chương viên phải đọc bảng EXE header vào định đầu vào file, từ phát virus Nay điều không trước Thật không may họ đọc bảng tham số cách mở file đọc, chương trình virus nhanh tay phát ý đồ thay vào bảng tham số bình thường chuyện bình thường, nghĩa “tình hình file vô yên tĩnh“ + Mã hóa chương trình: Một hướng khác nhiều F - virus áp dụng nhằm mục đích chống debug cách mã hóa phần lớn chương trình virus Chỉ vào vùng nhớ, phần chương trình mã hóa ngược lại Kĩ thuật mã hóa thường dùng sử dụng kết lệnh XOR Một virus thuộc hàng lão làng 1701 sử dụng kĩ thuật Tuy nhiên, lần mã hóa không làm nhà chống virus nản lòng nên khuynh hướng virus mã hóa thành tầng, tầng giải mã cho tâng kế khóa phần tùy thuộc vào thời gian lây (nghĩa với file lấy thời điểm khác nhau, phần mã khác 6/ Các kĩ thuật khác a Kĩ thuật định vị chương trình: Đối với F - virus, áp dụng kĩ thuật lây chèn đầu không gặp rắc rối (nhưng nhược điểm lây file COM) Nhưng F - virus dùng phương pháp Append file lại gặp rắc rối việc định vị 92 biến nội chương trình virus rõ ràng offset không xác định cách tuyệt đối mà phụ thuộc vào kích thước file gắn vào Các cách để giải trường hợp là: + Định vị tương đối: Chương trình virus định vị offset file theo đầu vào virus từ PSP trở Nghĩa tác vụ truy xuất biến nội tính từ đầu chương trình virus Điều lại gây lúng túng cho nhà sản xuất phần mềm F - virus loại xuất Thông thường để định vị đầu vào chương trình virus, virus đẩy offset vào Stack lấy lệnh POP, đơn giản lấy giá trị vào ghi cho phép tham chiếu gián tiếp (SI, DI, BX chẳng hạn), lúc tham chiếu biến nội theo ghi Đoạn mã sau minh họa cách thức ; Entry chương trình virus entry: call Next ; Đẩy offset nhãn next vào Stack Next: pop SI ; Lấy ngược lệnh POP sub SI, ; Vì lênh CALL chiếm byte ; nên lúc SI trỏ đến đầu chương ; trình virus mov word ptr [SI+100h] ; Tham chiếu biến nội Song phương pháp lại làm cho số nhà Hacker khó chịu việc định vị tương đối “chiếm“ ghi Vì vậy, đề nghị khác nêu nhằm khắc phục trường hợp + Định vị tuyệt đối cách thay đổi CS:IP : Sau trao quyền điều khiển, chương trình virus chiếm lưu trú vùng nhớ, chuyển chương trình sang vùng theo offset tùy chọn (thường 0, 0100h), chuyển quyền điều khiển sang vùng tạo b Kĩ thuật lấy ngắt: Không B - virus, số lượng có tồn nhiều loại vùng nhớ, F - virus tồn đồng thời nhiều loại vùng nhớ Và chắn hẳn độc giả biết F - virus chi phối ngắt 21h Một quy luật vàng máy tính: quyền lợi thuộc phần mềm chi phối máy trước tiên, chương trình virus lên sau không quyền ưu tiên Mặt khác, phần mềm chống virus dạng thường trú lên trước hết chi phối ngắt 21h, lời gọi mở/đọc/ghi file kiểm tra chặt chẽ (một số phần mềm chống virus nước áp dụng kiểu này) Lúc này, vấn đề sống đặt chiếm cho ngắt 21h chuẩn DOS Ai nắm điều đầu tiên, người có toàn quyền với lời gọi ngắt tiếp sau mà không kiểm soát Có vài cách để lấy ngắt 21h chuẩn này, có cách thông minh virus Yankee Daodle: có ngắt 21h chuẩn cách thông qua ngắt 3, hay tự định vị tuyệt đối phần mềm chống virus Tuy nhiên, cách có không thuyết phục nhà lí thuyết thực tế khả không đạt cao Đó toàn kĩ thuật mà F - virus hay dùng, không bắt buộc B - virus tuân theo, hầu hết virus nay, nước áp dụng http://www.ebook.edu.vn 93 VI - Phân tích F - virus Việc phân tích không nhằm đưa virus có kĩ thuật viết phức tạp hay dùng thủ thuật để chống debug,,, mà chọn virus có cách viết đơn giản, ngắn gọn, nhằm mục đích minh họa vài kĩ thuật then chốt ứng với hai loại F - virus phân tích hai virus nhiều người biết đến W-13 (còn biết tên 534), virus xuất thành phố Datalock ver 1.00 có sức lây lan mạnh Hai virus chọn lí chương trình chúng đơn giản, Anti-debug 1/ TF - virus: W-13 a Mô tả: + Kích thước 534 byte + Đối tượng: fiel dạng COM thư mục hành + Cách định vị tương đối theo đầu chương trình virus + Phá hoại: đổi thánh tạo file thành tháng 13 + File đối tượng lệnh NOP, tận lệnh INT 20 b Phân tích: Đoạn chương trình dịch Source.exe CodeSegA seg assume CS: CodeSegA, DS:CodeSegA org 100h 534 proc far Start: jmp loc1 db 0CDh, 20h ; Mã lệnh file đối tượng db 507 dup (0) Loc1: push AX mov SI, 465h ; SI trỏ đến bảng tham số nội mov DX, SI ; InternalBuffer add SI cld mov DI, 100h rep movsb ; Trả lại byte mã cho chương trình mov DI, DX mov AH, 30h ; Lấy version DOS int 21h cmp AL, ; ? sai version jne loc2 jmp loc16 loc2: mov DX, 2Ch ; Đặt lại DTA vào buffer add DX, DI mov BX, DX ; BX= InternalBuffer 94 mov int mov mov add loc3: mov mov int jmp loc4: mov int loc5: AH, 1Ah 21h BP, DX, DI DX, CX, AH, 4Eh 21h loc5 ; +2Ch= DTABuffer ; Trỏ DS:DX vào TypeFile ; FindFisrt AH, 4Fh 20h VII - Phòng chống f - virus 1/ Phát hiện: Một đĩa hay file bị nhiễm virus phải nhận diện xem loại virus tương ứng có cách chữa trị Việc phát tiến hành vùng nhớ (để phát RF - Virus) sau bắt đầu đĩa (cho hai loại virus) a Trong vùng nhớ: Vô cần thiết cho biết bước chữa trị thực hay không Đối với số loại virus, việc mở file, tìm file đĩa bị lây phần mềm Antivius lại giúp hội cho virus lây lan Việc phát nhiều cách: + Phát chênh lệch vùng nhớ cao: loại virus tách vùng nhớ khỏi tầm kiểm soát DOS, chênh lệch xuất vùng nhớ BIOS quản lí vùng nhớ DOS quản lí Tuy nhiên, chênh lệch nghĩa máy bị nhiễm mà cần phải thực thêm bước tiếp theo: Dò tìm đoạn mã: progvi có đoạn mã đặc trưng, chương trình chống virus tiến hành dò đoạn mã virus từ vùng nhớ thấp lên vùng nhớ cao Mọi phát đưa đến kết có virus, song phương pháp tỏ không hiệu nghiệm phát virus biết, mặt khác tồn đoạn liệu “trùng“ với đoạn mã progvi (là liệu phần mềm diệt virus khác tải lên vùng nhớ trước chẳng hạn) dẫn đến sai lầm b Trên file: Để xác định file có bị nhiễm hay không, dùng cách sau: + Kích thước file sau lệnh nhảy: Mỗi progvi có kích thước chuẩn Chương trình virus định vị đầu vào đầu file lệnh nhảy, so sánh đầu vào với kích thước file để suy file bị nhiễm hay chưa Đối với file EXE định vị đầu vào từ bảng tham số EXE header, từ suy kích thước sau Phương pháp không hiệu nghiệm tỏ xác ta biết nay, virus trùng kích thước nhiều Mặt khác, đâu cấm chương trình có khoảng cách sau lệnh JMP đến cuối file kích thước virus Do lỗi này, phương pháp không dùng nữa, virus dùng tốc độ nhanh + Dò tìm đoạn mã Progvi: Tương tự vùng nhớ tất nhiên gặp lỗi dò phải file chống virus khác, kể chẳng hạn http://www.ebook.edu.vn 95 2/ Chữa trị: Việc chữa trị file đơn giản việc chữa trị đĩa Chỉ đơn giản trả lại liệu chương trình đối tượng bị virus chiếm giữ cắt progvi khỏi file đối tượng a Đối với file dạng COM/BIN: + Nếu dạng Appenfzd file: Chỉ đơn giản định vị trả lại byte đầu bị virus chiếm, dời trỏ đến đầu vào progvi cắt progvi khỏi file + Nếu dạng chèn đầu: Phải tải toàn file vào vùng nhớ ghi lại vào đĩa với định đầu vào file địa buffer cũ cộng với kích thước chương trình virus b Đối với file dạng EXE: Nếu virus lưu giữ EXE header cũ file việc khôi phục đơn giản cách trả lại EXE header cũ, ngược lại, phải định vị yếu tố bảng EXE header Một điều đáng nói trình khôi phục file EXE, kích thước cũ không trả lại điều đơn giản: trình định vị cho CS, bắt buộc kích thước file phải làm tròn thành đoạn, điều này, file EXE khôi phục có kích thước chia hết cho 16 lượng chênh lệch khoảng 15 byte (nếu virus không lưu giữ giá trị kích thước file cũ) 3/ Phòng chống: Hiện nay, chưa có phần mềm tỏ hiệu việc phòng chống F - virus, có nhiều phần mềm chống virus thị trưòng Có thể kể cách chống virus sau : + Thường trú dò tìm: phần mềm Antivirus thường trú file thi hành chức 4B kiểm tra xem có bị nhiễm virus không trước cho thi hành Cách không hiệu có virus xuất số lượng virus tăng làm tăng thời gian kiểm tra + Thường trú phát virus vùng nhớ: Phần mềm Antivirus thường trú chi phối ngắt DOS, tác vụ gọi DOS hàng loạt để mở file, đổi thuộc tính, lấy đặt lại ngày cập nhật file ghi nhận thông báo có mặt virus Tuy vậy, loại virus tinh khôn, việc lấy địa gốc DOS điều dễ dàng nên kiểm soát hành động virus 4/ Khôi phục hậu quả: Những phá hoại F - virus tàn nhẫn xóa FAT, ROOT, format đây, gặp hậu virus, việc tốt cần làm đừng vội vã format lại đĩa, số virus format đĩa nhiều, mà xóa phần hay format lần đĩa Phần lại khôi phục lại số phần mềm chuyên dụng Fixdisk Pctool, NDD Norton Untilities Nếu không sửa chữa thông tin đĩa có giá trị nên mời nhà chống virus đến trước có định cuối format đĩa 96 Phụ Lục Một Số Chương Trình Mô Phỏng 1/ Đoạn chương trình mô virus PingPong ;Tạo trái ball hình Nó chuyển động tuân theo định ;luật phản xạ Không ảnh hưởng đến hoạt động máy Code Segment byte public Assume CS: code DS: code org 100h main Proc near jmp begin main endp int8 proc near push DS ;Cất ghi push AX push BX push CX push DX ;Kiểm tra xem mode hình có thay đổi không push CS pop DS mov AH, 0Fh int 10h ;Lấy mode video mov BL, AL cmp BX, word ptr DispMode ;? Thay mode je cont1 ;Cập nhật tham số có thay đổi mov word ptr DispMode, BX dec AH mov byte ptr MaxColumn, AH mov AH, cmp BL, jne cont2 dec AH Cont2: cmp BL, jae cont3 dec AH Cont3: mov byte ptr TextGraph, AH mov word ptr CurPos, 101h http://www.ebook.edu.vn 97 mov mov int push mov jmp Cont1: mov int push mov mov int mov cmp jne mov cont5: mov mov mov int cont4: mov cmp jne xor inc Cont6: cmp jne xor inc Cont7: cmp jne xor inc cont8: cmp jne xor inc 98 word ptr Direction, 101h AH, ;Đọc vị trí trỏ thời 10h DX DX, word ptr CurPos cont4 AH, ;Đọc vị trí trỏ thời DX AH, DX, word ptr CurPos ;Cất vị trí vào Stack ;Đặt lại vị trí trỏ ;Tới vị trí Ball 10h 10h AX, word ptr CharAtrib ;Mode hình thời byte ptr TextGraph, ;Graph hay Text cont5 ;Nếu Graph dùng XOR AX, 8307h ; character bite BL, AH CX, AH, ;Trả lại kí tự cũ vị trí ;Ball chiếm 10h ;Tính toán hướng nẩy ball CX, word ptr Direction DH, cont6 CH, 0FFh CH DH, 10h Cont7 CH, 0FFh CH DL, cont8 CL, 0FFh CL DL, byte ptr MaxColumn cont9 CL, 0FFh CL cont9: cmp jne mov and cmp jne xor inc cont12: cmp jne xor inc cont11: add add mov mov mov int mov int mov mov cmp jne mov cont13: mov mov int pop mov int pop pop pop pop cont14: jmp int8 endp CharAttrib CX, word ptr Direction cont11 AX, word ptr CharAttrib AL, AL, cont12 CH, 0FFh CH AL, cont11 CL, 0FFh CL DL, CL DH, CH word ptr Direction, CX word ptr CurPos, DX AH, ;Đặt trỏ vào vị trí mới, 10h ;đọc kí tự bị Ball thay AH, ;Kí tự trả lại kì 10h ;gọi ngắt word ptr CharAttrib, AX BL, AH byte ptr TextGraph, cont13 BL, 83h ;In Ball hình vị trí CX, ; mới, hình chế AX, 0907h ;độ Graphic, kí tự thời 10h ;được XOR charactor bits DX AH, ;Đặt trỏ lại vị trí cũ trước 10h ;khi gọi ngắt cáCH lấy lại DX ;trong Stack CX AX DS far 0000:0000 dw http://www.ebook.edu.vn 99 CurPos dw 101h Direction dw 101h TextGraph db 0FFh DispMode db 0FFh PageActive db 0FFh MaxColumn db install procnear begin: mov AX, 3508h ;Lấy địa ngắt int 21h mov word ptr [cont14+1], BX ;Cất địa mov word ptr [cont14+3], ES mov DX, offset int8 ;Thay ngắt mov AX, 2508h int 21h mov DX, offset begin ;Thường trú ngắt 27h int 27h install endp code ends end main 2/ Đoạn chương trình mô Yankee Doodle virus ;Lập trình loa - cho phép chơi Yankee Doodle ;Không ảnh hưởng đến hoạt động máy code segment byte public assume CS: code, DS: code org 100h main proc near jmp begin main endp newint1C procnear pushf push AX push BX push DS push ES push CS push DS cmp byte ptr active, ;Đã active chưa, không active jne exit cmp byte ptr active, ;Đã bắt đầu chơi chưa, jne cont3 ;sẽ không reset lại ;Phần reset buffer chứa Note Delay 100 mov word ptr beginMusic, offset music mov word ptr beginDelay, offset delay mov byte ptr active, ;Đặt cờ báo reset cont3: cmp byte ptr cont, ;? Delay note hết chưa, je cont1 ;không đếm cách giảm 1đơn vị dec byte ptr count jmp exit coun1: ;Phần chơi note cách lấy note bufferBeginMusic ;và thời gian buffer beginDelay, thời gian đếm biến Count mov BX, BeginMusic cmp DS: word ptr [BX], -1 ;Cuối buffer chưa jne count2 in AL, 061h ;Tắt loa cách tắt bit and AL, 0FCh out 61h, AL mov byte ptr active, jmp exit cont2: ;Lập trình cho kênh 8253 mov AL, 0B6h out 43h, AL mov AX, DS:[BX] out 42h, AL mov AL, AH out 42h, AL in AL, 61h or AL, out 61h, AL add word ptr BeginMusic, mov BX, BeginDelay mov AL, byte ptr DS:[BX] dec AL mov count, AL inc word ptr BeginDelay exit: pop ES pop DS pop BX pop AX popf jmp CS: dword ptr int1C newint1C endp http://www.ebook.edu.vn 101 int1c dw music db 0C7h, 11h, 0C7h, 11h, 0E6h, 0Fh, 28h, 0Eh, 0C7h, 11h, 28h, 0Eh, 0E6h, 0Fh, 04Ch, 17h db 0C7h, 11h, 0C7h, 11h, 0E6h, 0Fh, 28h, 0Eh, 0C7h, 11h, 0C7h, 11h, 0C7h, 11h, 0C7h, 11h db 0E6h, 0Fh, 28h, 0Eh, 59h, 0DH, 28h, 0Eh, 0E6h, 0Fh, 0C7h, 11h, 0Efh, 12h, 0C4h, 17h db 02Ch, 15h, 0Efh, 12h, 0C7h, 11h, 0C7h, 11h, 02Ch, 15h, 0Efh, 12h, 02Ch, 15h, 0C5h, 1Ah db 02Ch, 15h, 0Efh, 12h, 0C7h, 11h, 02Ch, 15h, 0C4h, 17h, 02Ch, 15h, 0C4h, 17h, 0C5h, 1Ah db 67h, 1Ch, 0C5h, 1AH, 0C4h, 17h, 2Ch, 15h, 0EFh, 12h, 2Ch, 15h, 0C5h, 1Ah, 2Ch, 15h db 0EFh, 12h, 0C7h, 11h, 2Ch, 15h, C4h, 17h, C7h, 11h, 0EFh, 12h, 0E5h, 0Fh, 0C7h, 11h db 0C7h, 11h, 0FFh, 0FFh delay db 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h, 9h, 9h, 5h, 5h db 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h, 9h, 9h, 5h, 5h, 5h, 5h db 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h, 5h db 5h, 5h, 6h, 5h, 5h, 5h, 5h, 9h, 9h beginMusic dw offset music beginDelay dw offset delay active db active1 db count db install procnear begin: AX, 351Ch ;Chiếm ngắt 1Ch int 21h mov DS: word ptr int1C, BX mov DS: word ptr [int1C+2], ES lea DX, NewInt1C ;Thay địa ngắt 1Ch mov AX, 251Ch int 21h lea DX, begin int 27h ;Thường trú ngắt 27h install endp code ends end main 102 Tài Liệu Tham Khảo I Sách: 1/ V.i.R.U.S Protection 2/ Norton Disk Companion II Phần mềm: 1/ Doshelp Flamebeaux Software 2/ Norton Guide Norton 3/ A86/D86.com Eric Isaacson 4/ Các chương trình virus ??? http://www.ebook.edu.vn Kane Pamela Peter Norton 103 104 [...]... chọn Partition table hay Boot sector vẫn là một vấn đề đang bàn cãi của các virus (hay đúng hơn là giữa những nhà thiết kế virus) , tuy nhiên hầu hết các virus sau này đều dùng Master boot hơn là Boot sector Vấn đề then chốt mà virus cần phải giải quyết là Boot sector nguyên thủy của đĩa Rõ ràng Boot này phải được thay, nhưng virus không thể làm thay mọi chuyện cho một Boot record vì thực sự nó đâu có... đã tạo ra lỗi đọc đĩa khi virus tiến hành lây lan (đĩa kêu cót két) Cho dù là loại SB - virus hay DB - virus đi nữa, cấu trúc bên trong của chúng vẫn như nhau Để có thể có cái nhìn đúng đắn về virus, chúng ta sẽ bắt đầu khảo sát B - virus bằng cách phân tích cấu trúc của nó III - Cấu Trúc Chương Trình B - Virus Do đặc điểm chỉ được trao quyền điều khiển một lần khi Boot máy, virus phải tìm mọi biện pháp... - virus II - Phân Loại Khó khăn trên được B - virus giải quyết ổn thỏa theo hai hướng: cất Boot record lên một vị trí xác định trên mọi đĩa và chấp nhận mọi rủi ro mất mát Boot sector (do bị ghi đè) dù tất nhiên chỗ cất dấu này có khả năng bị ghi đè thấp nhất Hướng này đơn giản và do đó chương trình thường không lớn Chỉ dùng một sector thay chỗ Boot record và do đó được gọi là SB virus (Single B - virus) ... toàn có thể định vị bất kì nên chương trình virus thường chiếm trên nhiều sector và được chia thành hai phần: một phần trên Boot record, một trên đĩa (trên vùng an toàn) Vì đặc điểm này, nhóm này được gọi là DB - virus (Double B - virus) 1/ SB - virus: Do tính dễ dãi chấp nhận mọi mất mát nên chương trình ngắn gọn chỉ chiếm đúng một sector Thông thường, SB - virus chọn nơi cất đấu Boot là những nơi mà... thể là 2 (Bad address mark) hay 7 (Unknow Media) Lẽ dĩ nhiên DOS đã tạo thuận tiện cho người sử dụng nhưng ít ai chịu thỏa mãn những yêu cầu của mình Rõ ràng, khi truy xuất đĩa ta phải biết loại của nó, mặt khác, làm sao ta có được những thông tin quan trọng về đĩa, xem FAT của nó gồm bao nhiêu sector, Root Dir bắt đầu từ đâu chẳng hạn.Toàn những thông tin quan trọng Thực tế, cũng đã nhiều ngưòi tự... lưu chứa những thông tin trung gian, những biến nội tại, dùng riêng cho chương trình virus, cho đến những bộ đếm giờ, đếm số lần lây phục vụ cho công tác phá hoại + Boot record: thực ra phần này có thể không nên kể vào chương trình virus vì nó thay đổi tùy theo đĩa mà không dính dáng, không ảnh hưởng gì đến chương trình virus Tuy nhiên, với một quan điểm khác, Progvi luôn phải đảm bảo đến sự an toàn của... install đã được làm xong, Boot record này được chuyển đến 0:7C00h và trao quyền điều khiển Để virus có thể tồn tại và phát triển, vẫn phải có một số yêu cầu về môi trường cũng như chính virus Dưới đây, chúng ta sẽ phân tích các yêu cầu cần có ở một B - virus IV - Các Yêu Cầu của B - Virus 1/ Tính tồn tại duy nhất: Virus phải tồn tại trên đĩa cứng cũng như trong bộ nhớ, đó là điều không thể chối cãi được... ngặt đối với mọi loại B - virus là phải đảm bảo được sự tồn tại duy nhất trên đĩa Sự tồn tại duy nhất trên đĩa sẽ đảm bảo sự tồn tại duy nhất trong vùng nhớ sau đó Tuy nhiên, với tốc độ tăng đáng kể về số lượng B - virus, hiện tượng 2 hay nhiều virus cùng ‘chia xẻ’ một đĩa tất nhiên sẽ xảy ra Trong trường hợp này, việc kiểm tra sự tồn tại sẽ dẫn đến sự sai lệch và hậu quả 1 virus sẽ tạo bản sao chính... nhiễm và ngụy trang: Khi bản chất của virus được khảo sát tường tận thì việc phát hiện virus không còn là vấn đề phức tạp Do đó, yêu cầu ngụy trang và gây nhiễu ngày càng trở nên cấp bách để bảo đảm tính sống còn của virus Việc gây nhiễu tạo nhiều khó khăn cho những nhà chống virus trong việc theo dõi chương trình để tìm cách khôi phục Boot, việc ngụy trang làm cho virus có một vẻ bề ngoài, làm cho khả... quyền điều khiển, nếu “ai đó “ thay đổi giá trị trong địa chỉ này sẽ làm cho hệ điều hành mất quyền quản lí vùng nhớ đó Tất cả các B - virus đều làm điều này, tùy theo kích thước chương trình virus và buffer cho riêng nó, vùng nhớ cơ bản sẽ bị giảm xuống tương ứng Tuy nhiên, cho đến nay, hầu như không có virus nào chiếm hơn 7Kb cho một mình nó, nhưng việc tòn tại nhiều loại virus trên 1 đĩa Boot sẽ làm ... két) Cho dù loại SB - virus hay DB - virus nữa, cấu trúc bên chúng Để có nhìn đắn virus, bắt đầu khảo sát B - virus cách phân tích cấu trúc III - Cấu Trúc Chương Trình B - Virus Do đặc điểm trao... 56 VI Phân tích B - virus mẫu VII Cách phòng chống chữa trị virus http://www.ebook.edu.vn Giới thiệu tổng quát virus tin học I - Virus Tin Học Trojan Horse Luật pháp nước... giả số thông tin thật cần thiết, tiện cho việc phân tích B -virus chương Dù vậy, có số thông tin bổ ích cho việc tham khảo I - Cấu Trúc Vật Lí Cấu trúc đĩa - dù vật lí hay logic, thực tế đề cập đến

Ngày đăng: 03/01/2016, 19:35

Xem thêm: Virus tin học huyền thoại hay thực tế

TỪ KHÓA LIÊN QUAN