Tự tạo công cụ chống File Virus

Trong khoa học máy tính, virus máy tính (thường được người sử dụng gọi tắt là virus) là những chương trình hay đoạn mã được thiết kế để tự nhân bản và sao chép chính nó vào các đối tượng lây nhiễm khác (file, ổ đĩa, máy tính, .). Trước đây, virus thường được viết bởi một số người am hiểu về lập trình muốn chứng tỏ khả năng của mình nên thường virus có các hành động như: cho một chương trình không hoạt động đúng, xóa dữ liệu, làm hỏng ổ cứng, . hoặc gây ra những trò đùa khó chịu. Những virus mới được viết trong thời gian gần đây không còn thực hiện các trò đùa hay sự phá hoại đối máy tính của nạn nhân bị lây nhiễm nữa, mà đa phần hướng đến việc lấy cắp các thông tin cá nhân nhạy cảm (các mã số thẻ tín dụng) mở cửa sau cho tin tặc đột nhập chiếm quyền điều khiển hoặc các hành động khác nhằm có lợi cho người phát tán virus. Chiếm trên 90% số virus đã được phát hiện là nhắm vào hệ thống sử dụng hệ điều hành họ Windows chỉ đơn giản bởi hệ điều hành này được sử dụng nhiều nhất trên thến giới. Do tính thông dụng của Windows nên các tin tặc thường tập trung hướng vào chúng nhiều hơn là các hệ điều hành khác. Cũng có quan điểm cho rằng Windows có tính bảo mật không tốt bằng các hệ điều hành khác (như Linux) nên có nhiều virus hơn, tuy nhiên nếu các hệ điều hành khác cũng thông dụng như Windows hoặc thị phần các hệ điều hành ngang bằng nhau thì cũng lượng virus xuất hiện có lẽ cũng tương đương nhau.

pdf7 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 1948 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Tự tạo công cụ chống File Virus, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
VIETBOOK Trang 1 Tûå taåo cöng cuå phoâng chöëng File Virus àöëi vúái nïìn tin hoåc hiïån nay úã nûúác ta, coá leä virus maáy tñnh khöng coân laâ àiïìu múái laå. Coá thïí vaâo möåt buöìi saáng àeåp trúâi naâo àoá trïn maân hònh chiïëc maáy tñnh thên yïu cuãa baån xuêët hiïån nhûäng cêu thöng baáo kyâ laå cuãa "keã khuãng böë" cuâng vúái viïåc àôa cûáng böîng trúã nïn "saåch seä", vêåy laâ bao nhiïu cöng lao vaâ haâng thaáng trúâi laâm viïåc phuát chöëc tan thaânh mêy khoái. Thûúâng gùåp nhêët coá leä laâ caác File Virus, àêy laâ loaåi virus lêy vaâo caác têåp tin chûúng trònh (com, exe, sys...). Möåt söë thûúâng àem laåi nhiïìu phiïìn toaái, xoaá hoùåc phaá hoãng têåp tin, format àôa cûáng... nhû Datalock, Little girl, White rose, Mario... Àïí giuáp caác baån coá thïí yïn têm hún khi laâm viïåc, chuáng ta seä cuâng xêy dûång möåt chûúng trònh coá khaã nùng phaát hiïån sûå lêy nhiïîm cuãa caác File virus vaâo möåt têåp tin khi chuáng àûúåc thi haânh. Chûúng trònh coá khaã nùng naây dûåa vaâo àùåc àiïím nïëu virus lêy vaâo têåp tin naâo thò kñch thûúác cuãa têåp tin àoá seä tùng lïn. Caách hoaåt àöång nhû sau: Chûúng trònh seä lûu laåi kñch thûúác cuãa têåp tin vaâ lûu vaâo cuöëi möåt àoaån maä, möîi lêìn chûúng trònh cuãa baån thi haânh, àoaån maä seä àûúåc goåi trûúác vaâ tûå àöång tòm laåi têåp tin àang thi haânh àïí kiïím tra kñch thûúác cuãa noá, nïëu phaát hiïån chïnh lïåch giaá trõ giûäa kñch thûúác cuä vaâ múái seä àûa ra thöng baáo cho ngûúâi sûã duång. Nhû vêåy chûúng trònh seä chia ra laâm hai phêìn: phêìn caâi àùåt vaâ àoaån maä cheân thïm. Phêìn caâi àùåt: Phêìn naây coá nhiïåm vuå gùæn thïm möåt àoaån maä vaâo cuöëi têåp tin àûúåc chó àõnh trïn doâng lïånh. Àêy laâ phêìn phûác taåp nhêët àöëi vúái möåt chûúng trònh thuöåc loaåi naây, noá phaãi laâm caác cöng viïåc sau: - Múã têåp tin àûúåc chó àõnh vaâ kiïím tra, nïëu têåp tin àaä àûúåc baão vïå thò dûâng chûúng trònh. Chûúng trònh nhêån biïët àûúåc àiïìu naây bùçng caách so saánh möåt chuöîi kyá tûå úã cuöëi têåp tin àöëi tûúång vúái chuöîi kyá tûå úã cuöëi àoaån maä caâi thïm, àêy cuäng laâ caách maâ nhiïìu virus sûã duång. - Lêëy kñch thûúác cuãa têåp tin cöång vúái kñch thûúác àoaån maä vaâ lûu laåi, giaá trõ naây vïì sau seä àûúåc duâng àïí kiïím tra möîi lêìn chûúng trònh thi haânh. - Gùæn àoaån maä thïm vaâo cuöëi têåp tin àöëi tûúång, tuyâ thuöåc vaâo loaåi chûúng trònh àïí coá caác caách khaác nhau. Àöëi vúái têåp tin daång COM, chûúng trònh seä thay thïë 3 bytes àêìu bùçng möåt lïånh nhaãy àïën àoaån maä, ngûúåc laåi nïëu têåp tin daång EXE, caác giaá trõ CS vaâ IP trong EXE Header seä àûúåc àiïìu chónh phuâ húåp àïí àiïím vaâo cuãa chûúng trònh cuäng chñnh laâ àêìu vaâo àoaån maä thïm. Hai loaåi chûúng trònh naây àûúåc phên biïåt búãi 2 bytes nhêån diïån 'MZ' taåi àêìu têåp tin, kiïíu cuãa chûúng trònh cuäng àûúåc lûu laåi vò ûáng vúái möîi loaåi cuäng seä coá caác caách traã àiïìu khiïín khaác nhau. Àoaån maä caâi thïm: Àoaån maä naây àûúåc nöëi thïm vaâo cuöëi têåp tin àöëi tûúång vaâ àûúåc giao quyïìn àiïìu khiïín möîi khi chûúng trònh thi haânh. Noá coá nhiïåm vuå kiïím tra kñch thûúác chûúng trònh àöëi tûúång vaâ baáo löîi nïëu thêëy khöng phuâ húåp. Cuå thïí laâ caác bûúác sau: - Tòm tïn têåp tin àang thi haânh: Bùæt àêìu tûâ DOS 3. 0, tïn chûúng trònh àang thi haânh seä àûúåc lûu cuöëi khöëi möi trûúâng. Àöëi vúái caác ngön ngûä lêåp trònh bêåc cao nhû Pascal,C/C++... baån coá thïí truy xuêët bùçng haâm ParamStr hoùåc àöëi söë argv cuãa haâm main(). Sau caác chuöîi möi trûúâng hònh thûác laâ àïën möåt word bùçng 0 vaâ möåt word bùçng 1, cuöëi cuâng laâ chuöîi ASCII chûáa tïn chûúng trònh kïët thuác bùçng byte 0. - Kiïím tra kñch thûúác: Sau khi àaä tòm thêëy tïn chûúng trònh, àoaån maä seä thûåc hiïån kiïím tra kñch thûúác vaâ baáo löîi nïëu thêëy khöng phuâ húåp. Seä coá 3 lûåa choån daânh cho baån: Abort - Dûâng ngay chûúng trònh, Continue - Tiïëp tuåc thûåc hiïån vaâ Reboot àïí khúãi àöång laåi maáy. Lûu yá rùçng nïëu têåp tin cuãa baån àaä nhiïîm virus trûúác khi baån baão vïå noá thò chñnh baån àaä tiïëp tay cho virus traánh khoãi cùåp mùæt nhoâm ngoá cuãa caác chûúng trònh Antivirus. Ngoaâi ra, nïëu baån sûã duång àuáng, nhûng sau àoá têåp tin àoá laåi bõ nhiïîm virus thò khi chaåy, virus laåi àûúåc goåi trûúác àoaån maä thïm vaâ nhû vêåy coá nghôa laâ virus rêët coá thïí àaä nhiïîm vaâo böå nhúá trûúác khi baån phaát hiïån ra noá. Nhû vêåy, nïëu nhêån àûúåc thöng baáo, baån nïn thoaát khoãi chûúng trònh vaâ lûu laåi nhûäng gò quan troång vaâo núi an toaân, sau àoá khúãi àöång laåi maáy vaâ chaåy caác chûúng trònh anti virus àïí tiïu diïåt virus àoá. Sau àêy laâ nöåi dung chûúng trònh, baån coá thïí duâng caác chûúng trònh dõch húåp ngûä nhû Turbo Assembler, Microsoft Assembler, A86... àïí dõch noá ra daång COM. Sûã duång vúái cuá phaáp sau: FPROTECT filename filename laâ tïn chûúng trònh cêìn baão vïå, àïí coá thïí baão vïå têët caã caác têåp tin trong möåt thû muåc, baån coá thïí sûã duång lïånh FOR cuãa DOS nhû sau (giaã sûã caác têåp tin àang úã thû muåc hiïån haânh): VIETBOOK Trang 2 FOR %I IN (*.COM) DO FPROTECT %I FOR %I IN (*.EXE) DO FPROTECT %I Sau àêy laâ nöåi dung chûúng trònh: (Xem chûúng trònh Fprotect.asm) Àïí kiïím tra khaã nùng laâm viïåc cuãa chûúng trònh, baån coá thïí thûã caâi vaâo möåt chûúng trònh nhoã, chùèng haån nhû Format.com:Fprotect Format.com Sau àoá taåo möåt têåp tin khaác coá nöåi dung tuyâ yá vaâ gheáp chuáng laåi vúái nhau: COPY CON TEMP.TXT ...^Z COPY/B FORMAT.COM TEMP.TXT Bêy giúâ möîi khi chaåy Format.com baån seä nhêån àûúåc thöng baáo: Warning: Size was changed! Continue, Abort or Reboot(C, A, R)? Goä C àïí tiïëp tuåc, A kïët thuác chûúng trònh vaâ R àïí khúãi àöång laåi maáy. Chûúng trònh baão vïå file FPROTECT.ASM WriteSize = offset Write_End - offset Write_Begin COMType = 'C' EXEType = 'E' HeaderSize= 1Ch Code Segment Assume Cs:Code, Ds:Code, Es:Code, SS:Code Org 80h ParamLength Db ? ParamStr Db ? Org 100h Start: Jmp Real_Start Write_Begin: Call GetAddress GetAddress: Pop Bx Sub Bx, 3;Lay dia chi Write_Begin vao Bx Cli Mov Cs: [Bx + Begin_Ss - Write_Begin], Ss Mov Cs: [Bx + Begin_Sp - Write_Begin], Sp Mov Ax, Cs Mov Ss, Ax Mov Sp, offset File_Stack Add Sp, Bx Sti Push Ds Mov Ds, Word ptr Ds: [2Ch] Xor Si, Si Mov Cx, 7FFFh Cld Search: ;Tim ten tap tin trong khoi moi truong Lodsb Cmp Al, 0 Jne Search LodSb Cmp Al, 0 Loopne Search Add Si, 2 Mov Ax, 3D00h Mov Dx, Si Int 21h Pop Ds Push Bx Mov Bx, Ax Mov Ax, 4202h;Lay kich thuoc tap tin Xor Cx, Cx Xor Dx, Dx VIETBOOK Trang 3 Int 21h Push Ax;Dong tap tin Mov Ah, 3Eh Int 21h Pop Ax Pop Bx Cmp Dx, Cs: [Bx + SaveSizeDx - Write_Begin] Jne Warning Cmp Ax, Cs: [Bx + SaveSizeAx - Write_Begin] Jne Warning Return: Mov Si, offset FileType - offset Write_Begin Add Si, Bx Cmp Byte ptr Cs: [Si], EXEType Je EXE_Return COM_Return: Cli Mov Sp, Word Ptr [Bx+Offset Begin_Sp-offset Write_Begin] Mov Ss, Word Ptr [Bx+Offset Begin_Ss-offset Write_Begin] Sti Mov Di, 100h Push Di Mov Si, Offset Old_Data - offset Write_Begin Add Si, Bx Mov Ax, Cs Mov Es, Ax Mov Ds, Ax Cld Mov Cx, 3 Rep MovSb Ret EXE_Return: Cli ;Tra loi ngan xep Mov Sp, Word Ptr Cs: [Bx+Offset Old_Sp-offset Write_Begin] Mov Ss, Word Ptr Cs: [Bx+Offset Old_Ss-offset Write_Begin] Sti Mov Ax, Ds;Dat dia chi tro vao ve Add Ax, 10h;ngan xep Add Ax, Word Ptr Cs: [Bx+Offset Old_Cs-offset Write_Begin] Push Ax Mov Ax, Word Ptr Cs: [Bx+Offset Old_Ip-offset Write_Begin] Push Ax Retf ;Tro ve Warning: Mov Ah, 9;Ghi thong bao Push Ds Push Cs Pop Ds Mov Dx, offset WarningMsg - offset Write_Begin Add Dx, Bx Int 21h Pop Ds ReadKey: Xor Ah, Ah;Doc phim Int 16h Push Ax Mov Ah, 2 Mov Dx, 0A0Dh Int 21h Xchg Dh, Dl Int 21h Pop Ax Cmp Al, 'C' Je Return Cmp Al, 'c' Je Return Cmp Al, 'A' Je Abort Cmp Al, 'a' Je Abort Cmp Al, 'R' VIETBOOK Trang 4 Je LReboot Cmp Al, 'r' Je LReboot Jmp short ReadKey Abort: Mov Ax, 4CFFh ;Ket thuc chuong trinh Int 21h;tro ve ma loi 255 LReboot: Mov Ax, 0FFFFh;Khoi dong lai may Push Ax Inc Ax Push Ax Retf Old_Data Db 0,0,0 Old_Sp Dw 0 Old_Ss Dw 0 Old_Ip Dw 0 Old_Cs Dw 0 Begin_Ss Dw 0 Begin_Sp Dw 0 FileType Db 0 SaveSizeDx Dw 0 SaveSizeAx Dw 0 Warningmsg Db 13,10 Db 'Warning: Size was changed! Continue, Abort or Reboot' Db ' (C,A,R)? $' ProgramID Db 13,10,'FPROTECT - Dao Hai Nam - K.95' ID_Length equ $ - offset ProgramID Write_End: Db 100h dup (0) File_Stack: Real_Start: Cmp ParamLength, 0 Jz NoParam Mov Dx, offset Message Mov Ah, 9 Int 21h Mov Bl, ParamLength Xor Bh, Bh Mov Byte ptr [Bx + 80h], 0 Mov Dx, 82h Call InstalltoFile Int 20h NoParam: Mov Dx, offset NoParam_Msg Mov Ah, 9 Int 21h Int 20 InstalltoFile proc near Jmp short Install_to_File Unable: Mov Dx, offset Unable_Msg Mov Ah, 9 Int 21 Error: Pop Dx Pop Cx Pop Bx Pop Ax Ret Install_to_File:;Ds:Dx chua ten tap tin Push Ax Push Bx Push Cx Push Dx Mov Ax, 4300h;Lay thuoc tinh Int 21h Jc Error Mov FileAttr, Cx Mov Ax, 4301h;Dat thuoc tinh Mov Cx, 0 VIETBOOK Trang 5 Int 21h Mov Ax, 6C00h Mov Bx, 0010000001000010b Mov Si, Dx;Ds:Si chua ten tap tin Push Dx Mov Dx, 1 Int 21h Jc Unable Mov Bx, Ax;Bx chua File Handle Mov FileHandle, Bx Mov Ax, 5700h;Lay ngay gio tao tap tin Int 21h Jc Error Mov FileTime, Cx Mov FileDate, Dx Mov Ah, 3Fh;Doc Header Mov Dx, offset Header Mov Cx, HeaderSize Int 21h Jc Close Mov Ax, Word Ptr Header Mov Word Ptr Old_Data, Ax Mov Ax, Word Ptr [Header+2] Mov Word Ptr [Old_Data+2], Ax Mov Ax, 4202h;Di chuyen toi cuoi Xor Cx, Cx;tap tin Xor Dx, Dx;Dx:Ax chua kich thuoc Int 21h;tap tin Push Ax Push Dx Add Ax, WriteSize;Luu lai kich thuoc tap tin Adc Dx, 0 Mov SaveSizeDx, Dx Mov SaveSizeAx, Ax Pop Dx Pop Ax Call Installed Jc Close Cmp Word Ptr [Header], 'ZM';Neu la EXE file thi goi Je CallEXE;AppendEXEfile Mov FileType, COMType Call AppendCOMFile Jmp Short Close CallEXE: Mov FileType, EXEType Call AppendEXEFile Close: Mov Dx, FileDate;Tra lai ngay gio Mov Cx, FileTime Mov Ax, 5701h Mov Bx, FileHandle Int 21h Mov Ah,3Eh;Dong tap tin Int 21h Mov Ax, 4301h;Dat lai thuoc tinh Mov Cx, FileAttr Pop Dx Int 21h Jmp Error;Tro ve ngat cu InstalltoFile endp Installed proc near Sub Ax, ID_Length Sbb Dx, 0 Jc Close Mov Cx, Dx Mov Dx, Ax Mov Ax, 4200h Int 21h Mov Ah, 3Fh Mov Cx, ID_Length Mov Dx, offset Buffer VIETBOOK Trang 6 Int 21h Jc WasIns Push Si Push Di Mov Si, offset Buffer Mov Di, offset ProgramID Mov Cx, ID_Length Cld Repe CmpSb Pop Di Pop Si Jcxz WasIns Clc Ret WasIns: Stc Ret Installed endp AppendEXEfile proc near Jmp Short EXEFile_Begin EXEfile_Return: Pop Dx Pop Cx Pop Bx Pop Ax Ret EXEFile_Begin: Push Ax Pus Bx Pus Cx Pus Dx Mov Ax, Word Ptr [Header+14h];Luu lai Cs va Ip Mov Old_Ip, Ax Mov Ax, Word Ptr [Header+16h] Mov Old_Cs, Ax Mov Ax, Word Ptr [Header+0Eh];Luu lai Sp va Ss Mov Old_Ss, Ax Mov Ax, Word Ptr [Header+10h] Mov Old_Sp, Ax Mov Ax, 4202h;Di chuyen toi cuoi Xor Cx, Cx;tap tin Xor Dx, Dx;Dx:Ax chua kich thuoc Int 21h;tap tin Mov Si, Offset Header;Tinh do doi cho doan Mov Cx, 200h;ma them Div Cx Mov Bx, Ax Mov Cl, 5 Shl Ax, Cl Sub Ax, [Si+8] Mov Word Ptr [Si+16h], Ax Mov Word Ptr [Si+14h], Dx Mov Ax, Dx;Tim chieu dai theo cac Add Ax, WriteSize Xor Dx, Dx;trang 512 byte,ke ca Mov Cx, 200h;Header Div Cx Add Bx, Ax Or Dx, Dx Jz No_Inc Inc Bx No_Inc: Mov [Si+4], Bx;Luu chieu dai tim duoc Mov [Si+2], Dx;vao Header Mov Ax, 4202h;Xuong cuoi tap tin Xor Cx, Cx Xor Dx, Dx Int 21h Mov Bx, FileHandle Mov Ah, 40h;Them phan duoi Mov Dx, Offset Write_Begin VIETBOOK Trang 7 Mov Cx, WriteSize Int 21h Mov Ax, 4200h;Ve dau tap tin Mov Bx, FileHandle Xor Cx, Cx Xor Dx, Dx Int 21h Mov Ah, 40h;Ghi Header da dieu Mov Cx, HeaderSize;chinh vao lai tap tin Mov Dx, Offset Header Int 21h Jmp EXEFile_Return AppendEXEfile endp AppendCOMfile proc near Push Ax Push Bx Push Cx Push Dx Mov Bx, Filehandle;Toi cuoi tap tin Mov Ax, 4202h Xor Cx, Cx Mov Dx, Cx Int 21h Sub Ax,3 Mov Addr, Ax Mov Ah, 40h;Ghi ban than vao cuoi tap tin Mov Bx, FileHandle Mov Dx, offset Write_Begin Mov Cx, WriteSize Int 21h Jc COMFile_Return Mov Ax, 4200h;Ve dau tap tin Xor Cx, Cx Mov Dx, Cx Int 21h Jc COMFile_Return Mov Ah, 40h;Ghi lenh nhay Mov Dx, offset Jmp_Cmd Mov Cx, 3 Int 21h COMFile_Return: Pop Dx Pop Cx Pop Bx Pop Ax Ret AppendCOMfile endp Jmp_Cmd Db 0E9h Addr Dw 0 Message Db 13,10 Db 'FPROTECT-Written by Dao Hai Nam-Da Lat Univerity K95.' Db 13,10,'$' NoParam_Msg Db 'Required parammeters missing -',13,10,'$' Unable_Msg Db 'Unable to open file -',13,10,'$' Header Db HeaderSize dup (0) FileAttr Dw 0 FileDate Dw 0 FileTime Dw 0 FileHandle Dw 0 Buffer Db 8 dup (0) Code ends End Start

Các file đính kèm theo tài liệu này:

  • pdfTự tạo công cụ chống File Virus.PDF
Tài liệu liên quan