1、http:/张仁斌 李钢 侯整风 编著计算机病毒与反病毒技术清华大学出版社清华大学出版社计算机病毒与反病毒技术计算机病毒与反病毒技术 清华大学出版社 张仁斌 等 编著 2主要内容u 计算机病毒的隐藏技术u 计算机病毒驻留内存技术u 计算机病毒的变形技术u 计算机病毒的反跟踪、反调试、反分析技术第第 8章章 计算机病毒常用技术综述计算机病毒常用技术综述计算机病毒与反病毒技术计算机病毒与反病毒技术 清华大学出版社 张仁斌 等 编著 38.1.1 引导型病毒的隐藏技术u 引导病毒的隐藏方法8.1 计算机病毒的隐藏技术计算机病毒的隐藏技术修改 INT 13H入口地址修改 INT 21H功能 4BH计算
2、机病毒与反病毒技术计算机病毒与反病毒技术 清华大学出版社 张仁斌 等 编著 48.1.2 文件型病毒的隐藏技术u 文件型病毒在打开文件的时候将文件的内容恢复到未感染的状态,在关闭文件的时候重新进行感染u 由于访问文件的方式、方法非常多,所以实现完全的文件型病毒隐藏是一件非常困难的事情。一套较完整的隐藏技术应该改包括对如图所示几个方面的处理8.1 计算机病毒的隐藏技术计算机病毒的隐藏技术计算机病毒与反病毒技术计算机病毒与反病毒技术 清华大学出版社 张仁斌 等 编著 58.1.3 宏病毒的隐藏技术u 宏病毒的隐藏技术比较简单8 在 Word、 Excel等软件中禁止菜单 “文件 模板 ”或者 “工
3、具 宏 ”8 通过宏病毒代码删除菜单项8 宏病毒用自己的 FileTemplates和 ToolsMacro宏替代系统缺省的宏8 也可以采用 5.3节中讨论的隐藏技术8.1 计算机病毒的隐藏技术计算机病毒的隐藏技术计算机病毒与反病毒技术计算机病毒与反病毒技术 清华大学出版社 张仁斌 等 编著 68.1.4 Windows病毒的隐藏技术u 以 系统服务程序方式进行隐藏u 拦截枚举进程的 API函数u 动态嵌入式隐藏8.1 计算机病毒的隐藏技术计算机病毒的隐藏技术计算机病毒与反病毒技术计算机病毒与反病毒技术 清华大学出版社 张仁斌 等 编著 78.2.1 加密解密技术与病毒的多态性u 多态病毒的框
4、架8 多态病毒是改进了的加密病毒,由变化的解密头和加密的代码组成。多态病毒运行时,先执行的是解密代码,对加密代码解密,然后执行刚解密的代码,也就是实现传播的主体代码8.2 病毒的加密与多态病毒的加密与多态 (变形变形 )技术技术计算机病毒与反病毒技术计算机病毒与反病毒技术 清华大学出版社 张仁斌 等 编著 88.2.1 加密解密技术与病毒的多态性;VIRUS_SIZE是加密代码的长度, offset EncrptStart是加密代码的起始地址, key是密钥;密钥以及这些解密代码都是随机生成的,不同的感染会不一样INSTRLEN equ 10;定义宏,执行一条有效指令的同时制造垃圾代码I3 m
5、acro code1_2, code3local s,es: code1_2, code3 ;例如: MOV EAX,EBXe: db INSTRLEN-(e-s) dup (90h) ;垃圾代码,类似于后文中将介绍的花指令endmI2 macro code1_2local s,es: code1_2 ;例如: INC EDIe: db INSTRLEN-(e-s) dup (90h) ;垃圾代码,类似于后文中将介绍的花指令endmI3 MOV ECX, VIRUS_SIZEI3 MOV EDI, offset EncrptStartDecrptLoop:I3 XOR byte ptr EDI
6、,keyI2 INC EDII2 LOOP DecrptLoop加密后的病毒代码8.2 病毒的加密与多态病毒的加密与多态 (变形变形 )技术技术计算机病毒与反病毒技术计算机病毒与反病毒技术 清华大学出版社 张仁斌 等 编著 98.2.1 加密解密技术与病毒的多态性u 多态病毒加密与普通加密的差别8 每条解密指令都不是固定的,上面的固定代码实际上只是一种可能,病毒每次复制自身的时候,这些代码都会随机改变8 密钥在复制自身时,也要重新生成8 宏 I3、 I2使得每条指令占用 10个字节的空间 (之所以选择 10个字节,是因为几乎所有指令,特别是病毒常用的,都小于 10个字节,保证了有剩余空间,又不
7、会造成太大浪费,是一种折衷 ),在 10个字节的剩余空间中插入随机生成的垃圾代码,这些垃圾代码也是随机选择的8.2 病毒的加密与多态病毒的加密与多态 (变形变形 )技术技术计算机病毒与反病毒技术计算机病毒与反病毒技术 清华大学出版社 张仁斌 等 编著 108.2.1 加密解密技术与病毒的多态性代 码 说 明MOV reg_1, countMOV reg_2, keyMOV 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_1Jxx LOOP Jxx是 ja、 jnc等不同条件跳 转 指令的通称,使用什么跳 转 指令也是感染的 时 候随机 选择 的加密后的病毒代 码8.2 病毒的加密与多态病毒的加密与多态 (变形变形 )技术技术