文档介绍:合肥工业大学计算机与信息学院张仁斌
计算机病毒与反病毒技术
主要内容
计算机病毒的隐藏技术
计算机病毒驻留内存技术
计算机病毒的变形技术
计算机病毒的反跟踪、反调试、反分析技术
第8章计算机病毒常用技术综述
引导型病毒的隐藏技术
引导病毒的隐藏方法
计算机病毒的隐藏技术
修改INT 13H入口地址
修改INT 21H功能4BH
文件型病毒的隐藏技术
文件型病毒在打开文件的时候将文件的内容恢复到未感染的状态,在关闭文件的时候重新进行感染
由于访问文件的方式、方法非常多,所以实现完全的文件型病毒隐藏是一件非常困难的事情。一套较完整的隐藏技术应该改包括对如图所示几个方面的处理
计算机病毒的隐藏技术
宏病毒的隐藏技术
宏病毒的隐藏技术比较简单
在Word、Excel等软件中禁止菜单“文件→模板”或者“工具→宏”
通过宏病毒代码删除菜单项
宏病毒用自己的FileTemplates和ToolsMacro宏替代系统缺省的宏
计算机病毒的隐藏技术
Windows病毒的隐藏技术
以系统服务程序方式进行隐藏
拦截枚举进程的API函数
动态嵌入式隐藏
计算机病毒的隐藏技术
加密解密技术与病毒的多态性
多态病毒的框架
多态病毒是改进了的加密病毒,由变化的解密头和加密的代码组成。多态病毒运行时,先执行的是解密代码,对加密代码解密,然后执行刚解密的代码,也就是实现传播的主体代码
病毒的加密与多态(变形)技术
加密解密技术与病毒的多态性
;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
加密后的病毒代码
病毒的加密与多态(变形)技术
加密解密技术与病毒的多态性
多态病毒加密与普通加密的差别
每条解密指令都不是固定的,上面的固定代码实际上只是一种可能,病毒每次复制自身的时候,这些代码都会随机改变
密钥在复制自身时,也要重新生成
宏I3、I2使得每条指令占用10个字节的空间(之所以选择10个字节,是因为几乎所有指令,特别是病毒常用的,都小于10个字节,保证了有剩余空间,又不会造成太大浪费,是一种折衷),在10个字节的剩余空间中插入随机生成的垃圾代码,这些垃圾代码也是随机选择的
病毒的加密与多态(变形)技术
加密解密技术与病毒的多态性
代码
说明
MOV reg_1, count
MOV reg_2, key
MOV reg_3, offset
其中,reg_1、reg_2和reg_3是从AX、BX、CX、DX、SI、DI、BP中随机挑选的寄存器,感染不同的文件,解密代码使用随机的寄存器;count是加密数据的长度,key是加密的密钥,offset是加密代码的偏移量,感染的时候,这些数值都是随机生成的,不同的感染都不一样
LOOP:
xxx byte ptr [reg_3],reg_2
xxx是XOR、ADD、SUB等不同运算指令的通称,使用什么运算指令是感染的时候随机选择的
DEC reg_1
Jxx LOOP
Jxx是ja、jnc等不同条件跳转指令的通称,使用什么跳转指令也是感染的时候随机选择的
加密后的病毒代码
病毒的加密与多态(变形)技术