卡巴斯基(AVP)内存驻留型病毒检测方法
所属分类:
实用技巧 / 漏洞研究
阅读数:
418
收藏 0赞 0分享
author:killer <killer②uid0.net>
卡巴斯基反病毒软件(Kaspersky Antivirus),以前叫AntiViral Toolkit Pro(AVP),出于习惯和简单,这里一律称为AVP或KAV。
学习AVP的检测办法的意义一方面在于AVP的检测方法是经过理论验证和实践考验的科学合理的方法,另外DOS年代过来的朋友对于反病毒有过这样的经验:“机子感染病毒了?好,请用干净无毒的系统盘启动,然后全盘查杀。”,我记得CIH横行那会,一个朋友让我帮他清除病毒,说病毒是国内某知名AV报的,启动该AV杀了一遍还有,而且该AV自己的监控报自己也感染了CIH,我听了后告诉他用干净的启动盘启动系统全盘查杀。虽然这是一个办法,但事实上反病毒软件为什么不直接做到可以内存检测并清除病毒呢。而这是完全可以做到的,对于内存检测/清除驻留型病毒的方法,就我所知最早AVP开始使用。
一、检测方法:
在AVP病毒库中,有几种特征记录,其中一种是内存特征,这是AVP用来检测查杀内存驻留型病毒的特征集,AVP对内存驻留的感染式病毒采用了一些单独的检测方法。
AVP通过在病毒库中记录的扫描方法和地址偏移来扫描内存中驻留的感染式病毒,从地址偏移开始进行逐字节匹配,当匹配到匹配字节的时候,即:Segm:Offset + byte offset = record:Byte,然后AVP开始计算由库记录指定长度的特征码,如果恰好匹配库中的记录的话,将显示对应的病毒消息,同时根据库的修复记录所指定的修复长度、和修复字节中的内容,进行内存修复,确保修复后,使得原病毒失去活性。
此记录结构包含的字段主要有:
病毒名
搜索方法:绝对地址扫描、专用模块...
地址偏移: 段+偏移
匹配字节
特征长度
特征
专用处理过程:Obj_Link
处理偏移地址
处理字节长度:一般小于10
修复字节
二、搜索方法:
有上面可以看出,AVP能否保证快速处理,一个关键因素是AVP的搜索方法,事实上,AVP内置了众多的搜索办法,这些办法适用于MSDOS、WIN9X、WINNT/2000/XP等系统。AVP对一个病毒的处理可以采用多种内存搜索办法,所不同的是哪种方法高效一些而已。
1、绝对地址:
AVP采用绝对地址的扫描办法来扫描一些病毒,扫描器从库记录中读出相应的地址记录,到内存中进行匹配,匹配上后,进行修复处理过程。
2、段扫描:
AVP从一个内存段,单字节循环递增,从开始扫描到段结束。
3、全部扫描:
AVP从内存地址0x00000000h开始,循环递增,进行全内存匹配的扫描方法。
4、专用模块:
这是针对一些特定的“狡猾”病毒的方法。当AVP自己定义的正常扫描和检测办法无法正确识别的时候,采用一个专用的处理模块来检测清除该病毒,该模块编写完成后,编译为obj格式的文件,存储在AVP的库记录中。
5、中断跟踪:
这主要是AVP For DOS的扫描方法,通过对系统的中断INT21、INT13的来定位驻留内存的病毒代码,通过对这些指令附近的代码修改,使得病毒失去活性。
三、实例:
简单举例,比如这个病毒(网上找的一个感染COM文件的代码片段):
cmp ah,3dh
jz short @@Infect_File ;截获3d号Dos功能
@@JmpOldInt21:
cli
JmpFar db 0eah
@@Infect_File:
....
编译后应该是这个样子:
13B6:0100 80FC 3D CMP AH,3Dh
13B6:0104 74 xx JE Infect_File
13B6:0107 FA CLI
13B6:0108 xx xx XXX
对于这个病毒的检测和清除,我们生成一记录,这个病毒记录在AVP库record中,可以是这种形式,它完全可以检测和解除该病毒的活性:
搜索方法:中断跟踪
地址偏移:1000:0000
匹配字节:80FC
特征长度:6
特征:xxxxxxxx
专用处理过程:NULL
处理偏移地址:3
处理字节长度:2
修复字节:90 90
通过这样一个检测、修复库记录,AVP就可以检测和修复内存中驻留的活性病毒,然后在通过单独的文件病毒检测/修复等处理过程来全面清除磁盘文件中的病毒。
本文是我的(Avp Reverse Engineering)AVP逆向学习系列一节,所分析的方法在不同版本中略有不同,而基于AVP的良好架构,这些改变主要体现的处理方法的增删,和结构长度变化。
欢迎交流、指点。
MySQL Proxy(解决注入的另一思路)
MySQL Proxy的主要作用是用来做负载均衡,数据库读写分离的。但是需要注意的是,MySQL Proxy还有个强大的扩展功能就是支持Lua语言——魔兽也是使用了Lua来开发游戏,据我所知网易也是——可以参见云风的博客。
收藏 0赞 0分享
分析NtGodMode.exe干了什么
NtGodMode.exe是通过打开LSASS.EXE进程msv1_0.dll模块空间里,然后搜索特征值8B 4D 0C 49之后第1个32 C0 这个32C0汇编码xor al,al,修改为B001对应汇编码mov al,1 为什么mov al,1,以后就不用密码了?
收藏 0赞 0分享
伯乐asp收信程序漏洞及利用程序利用代码
信息来源:邪恶八进制信息安全团队(www.eviloctal.com)
文章作者:fhod
发这个也是因为看了asm所写的新概念收信程序 箱子永远不会被黑
收藏 0赞 0分享
字符集导致的浏览器跨站脚本攻击分析
前言:这种利用类型的攻击早在06年就被安全研究人员指出,不过一直没有在国内重视。而由于我们国内大部分站点正是这种有漏洞的字符集,所以影响还是比较大,希望各大站快速修复。可以看看http://applesoup.googlepages.com/。
收藏 0赞 0分享
Search Engine XSS Worm
作者:余弦
来源:0x37 Security
有挑战才有意思,为了诞生个Search Engine XSS Worm,这里拿yeeyan做实验了。
收藏 0赞 0分享
暂时屏蔽 IE 最新 0day的4 种方法
IE 最新 0day 波及了微软全线系统居然在2008年12月14日8:00:15还没有出补丁!我查看微软站点,好像有几个手动操作的办法暂时屏蔽。
收藏 0赞 0分享
查看更多