当前位置:文档之家› 计算机病毒常用技术综述

计算机病毒常用技术综述

隐藏病毒扇区
列目录时显示感染 前的文件大小 读写文件看到正常 的文件内容 执行或者搜索时隐 藏病毒
在支持长文件名的 系统中隐藏病毒
8.1
计算机病毒的隐藏技术
8.1.3 宏病毒的隐藏技术
• 宏病毒的隐藏技术比较简单
– 在Word、Excel等软件中禁止菜单“文件→模 板”或者“工具→宏” – 通过宏病毒代码删除菜单项 – 宏病毒用自己的FileTemplates和ToolsMacro 宏替代系统缺省的宏 – 也可以采用5.3节中讨论的隐藏技术
返回数据
用户键入AV.EXE 执行反病毒程序读扇区
感染后的INT 21H功能4BH(加载并执行一个程序) 病毒感染后的 INT 13H服务程序
读请求 被病毒感染的扇区
返回数据
恢复被病毒感染的扇区为原来的内容 原来的 INT 13H服务程序
读请求 返回数据 原来OS命令解释程序
第8章
计算机病毒常用技术综述
主要内容
• 计算机病毒的隐藏技术
• 计算机病毒驻留内存技术 • 计算机病毒的变形技术 • 计算机病毒的反跟踪、反调试、反分析技 术
8.1
计算机病毒的隐藏技术
8.1.1 引导型病毒的隐藏技术
DOS命令解释程序() • 引导病毒的隐藏方法 读扇区调用 DOS应用程序 DOS下的杀毒软件
被感染扇区的原始内容 的备份所在扇区
修改INT 13H入口地址
修改INT 21H功能4BH
8.1
计算机病毒的隐藏技术
8.1.2 文件型病毒的隐藏技术
• 文件型病毒在打开 INT 13H 文件的时候将文件 BIOS (直接磁盘访问 ) 的内容恢复到未感 DOS INT 21H调用 染的状态,在关闭 列目录功能 (FindFirst、 FindNext) 文件的时候重新进 读写功能 (Read、 Write) 行感染 执行功能 • 由于访问文件的方 (EXEC) 式、方法非常多, 其他功能 (rename等 ) 所以实现完全的文 Windows操作系统下,支持长 件型病毒隐藏是一 文件名的扩展DOS调用 件非常困难的事情。
病毒的加密与多态(变形)技术
• 多态病毒的框架
8.2
;VIRUS_SIZE是加密代码的长度,offset EncrptStart是加密代码的起始地址,key是密钥 ;密钥以及这些解密代码都是随机生成的,不同的感染会不一样 INSTRLEN equ 10 ;定义宏,执行一条有效指令的同时制造垃圾代码 I3 macro code1_2, code3 local s,e s: code1_2, code3 ;例如:MOV EAX,EBX e: db INSTRLEN-(e-s) dup (90h) ;垃圾代码,类似于后文中将介绍的花指令 endm I2 macro code1_2 local s,e s: code1_2 ;例如:INC EDI e: db INSTRLEN-(e-s) dup (90h) ;垃圾代码,类似于后文中将介绍的花指令 endm I3 MOV ECX, VIRUS_SIZE I3 MOV EDI, offset EncrptStart DecrptLoop: I3 XOR byte ptr [EDI],key I2 INC EDI I2 LOOP DecrptLoop 加密后的病毒代码
病毒的加密与多态(变形)技术
MOV reg_1, count MOV reg_2, key MOV reg_3, offset
LOOP: xxx byte ptr [reg_3],reg_2 DEC reg_1 Jxx LOOP 加密后的病毒代码 Jxx是ja、jnc等不同条件跳转指令的通称,使用什 么跳转指令也是感染的时候随机选择的 xxx是XOR、ADD、SUB等不同运算指令的通称, 使用什么运算指令是感染的时候随机选择的
8.1
计算机病毒的隐藏技术
8.1.4 Windows病毒的隐藏技术
• 以系统服务程序方式进行隐藏 • 拦截枚举进程的API函数 • 动态嵌入式隐藏
8.2
8.2.1 加密解密技术与病毒的多 态性
– 多态病毒是改进了的加密病毒,由变化的解密 头和加密的代码组成。多态病毒运行时,先执 行的是解密代码,对加密代码解密,然后执行 刚解密的代码,也就是实现传播的主体代码
病毒的加密与多态(变形)技术
• 多态病毒加密与普通加密的差别
8.2
8.2.1 加密解密技术与病毒的多 态性 说 明 代 码
其中,reg_1、reg_2和reg_3是从AX、BX、CX、 DX、SI、DI、BP中随机挑选的寄存器,感染不同 的文件,解密代码使用随机的寄存器;count是加 密数据的长度,key是加密的密钥,offset是加密 代码的偏移量,感染的时候,这些数值都是随机 生成的,不同的感染都不一样
8.2
8.2.2 使用改变可执行代码技术 的多态病毒
病毒的加密与多态(变形)技术
• 由于在运行过程中改变机器语言的指令是非常困难的,所 以这种技术主要使用在宏病毒中。在运行过程中,病毒可 以随机的改变变量名,指令的顺序等,但是不影响病毒所 实现的功能 • 一些复杂的引导型病毒也采用了这种技术,在引导区或者 分区表中,包含了一小段代码来加载实际的病毒代码,这 段代码在运行的过程中是可以改变的 • 由于动态修改机器语言代码的复杂性,完成在文件型病毒 中使用动态代码修改技术有相当的难度,但是已发现存在 病毒使用了这种技术
8.2.1 加密解密技术与病毒的多 态性
病毒的加密与多态(变形)技术
8.2
8.2.1 加密解密技术与病毒的多 态性
– 每条解密指令都不是固定的,上面的固定代码 实际上只是一种可能,病毒每次复制自身的时 候,这些代码都会随机改变 – 密钥在复制自身时,也要重新生成 – 宏I3、I2使得每条指令占用10个字节的空间 (之所以选择10个字节,是因为几乎所有指令, 特别是病毒常用的,都小于10个字节,保证了 有剩余空间,又不会造成太大浪费,是一种折 衷),在10个字节的剩余空间中插入随机生成的 垃圾代码,这些垃圾代码也是随机选择的
相关主题