卡巴斯基检测内存驻留型病毒的方法

卡巴斯基反病毒软件(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的来定位驻留内存的病毒代码,通过对这些指令附近的代码修改,使得病毒失去活性。

此文出自:http://bbs.pcunit.cn

时间: 2024-11-17 09:18:33

卡巴斯基检测内存驻留型病毒的方法的相关文章

卡巴斯基(AVP)内存驻留型病毒检测方法_漏洞研究

author:killer  <killer②uid0.net>     卡巴斯基反病毒软件(Kaspersky Antivirus),以前叫AntiViral Toolkit Pro(AVP),出于习惯和简单,这里一律称为AVP或KAV.     学习AVP的检测办法的意义一方面在于AVP的检测方法是经过理论验证和实践考验的科学合理的方法,另外DOS年代过来的朋友对于反病毒有过这样的经验:"机子感染病毒了?好,请用干净无毒的系统盘启动,然后全盘查杀.",我记得CIH横行那

检测电脑病毒的方法

病毒要进行传染,必然会留下痕迹.生物医学病毒如此,电脑病毒也是一样.检测电脑病毒,就要到病毒寄生场所去检查,发现异常情况,并进而验明"正身",确认电脑病毒的存在.电脑病毒静态时存储于硬盘中,被激活时驻留在内存中,因此对电脑病毒的检测可以分为对硬盘的检测和对内存的检测. 一般对硬盘进行病毒检测时,要求内存中不带病毒,因为某些电脑病毒会向检测者报告假情况.例如"4096"病毒在内存中时,查看被它感染的文件,不会发现该文件的长度已发生变化,而当在内存中没有病毒时,才会发现

汇编源代码之CIH文件型病毒检测消除程序

;本程序在Tasm下编译通过;CIH文件型病毒检测消除程序GOFIRST MACROXOR CX,CXXOR DX,DXMOV AX,4200HINT 21H ;文件指针指到文件首ENDMALTERLINE MACROMOV DL,0DHMOV AH,02HINT 21H ;回车MOV DL,0AHMOV AH,02HINT 21H ;换行ENDMCOPYHANDLE MACROPUSH BXMOV AH,45HINT 21H ;复制文件把柄MOV BX,AXMOV AH,3EHINT 21H

使用新版Android Studio检测内存泄露和性能

内存泄露,是Android开发者最头疼的事.可能一处小小的内存泄露,都可能是毁于千里之堤的蚁穴. 怎么才能检测内存泄露呢?网上教程非常多,不过很多都是使用Eclipse检测的, 其实1.3版本以后的Android Studio 检测内存非常方便, 如果结合上MAT工具,LeakCanary插件,一切就变得so easy了. 熟悉Android Studio界面 工欲善其事,必先利其器.我们接下来先来熟悉下Android Studio的界面 一般分析内存泄露, 首先运行程序,打开日志控制台,有一个

汇编语言编写DOS下的内存驻留程序(3)

三 中断矢量3.1 IBM PC提供的中断IBM PC有两种基本形态的中断.如果是由外围设备所产生的中断就叫做硬件中断(Hardware interrupt),譬如:键盘,磁盘机和时钟等外围设备都可以产生硬件中断.外围设备所产生的中断信号都连接到中断控制器,中断控制器可以根据它们之间的重要性来安排优先顺序,以便使CPU有效地处理这些硬件信号.另一种中断是软件中断(Software interrupt),软件中断也叫做陷井(Trap),它是由执行中的软件所产生.虽然软件包中断的处理方式和硬件中断完

汇编语言编写DOS下的内存驻留程序(1)

绪言0.1 内存驻留与中断 内存驻留程序英文叫Terminate and Stay Resident Program,缩写为TSR.这些程序加载进内存,执行完后,就驻留在内存里,当满足条件时,调到前台来执行. 内存驻留程序的常用形式有:  >诸如Borland 的SideKick弹出式实用程序  >日历系统  >网络服务器  >通讯程序  >本地的DOS扩展(如CCDOS,UCDOS等中文系统都属于这个范畴)  >一些可恶的人利用TSR技术制作很多可恶的病毒程序,几乎所

worm.viking(维金)病毒清除方法

"维金"病毒档案 病毒名称: Worm.Viking.m 中文名称: 维金(又名:威金) 威胁级别: ★★★ 病毒类型: 蠕虫 受影响系统: Win 9x/ME,Win 2000/NT,Win XP,Win 2003 "维金"病毒五大罪状 第一罪:感染系统文件 造成系统损坏,且手动清除困难: 第二罪:下载恶性木马 盗取魔兽.传奇帐号,灰鸽子开后门使系统完全受黑客控制,QQRobber病毒等: 第三罪: 多路网络传播方式 通过感染文件.局域网共享来传播: 第四罪: 强

内存SPD信息的修改方法

一直以来,DIY的玩家都喜欢用各种测试软件来检查自己的配件,但是,可曾想到,测试软件读出来的信息是被修改过的?近日,国内52硬件论坛有人就将内存SPD信息修改的方法细节公布于众,并详细的附上了说明图片,立刻引来了无数人的关注. SPD是内存模组上面的一个可擦写的ROM,里面记录了该内存的许多重要信息,诸如内存的芯片及模组厂商.工作频率.工作电压.速度.容量.电压与行.列地址带宽等参数.SPD信息一般都是在出厂前,由内存模组制造商根据内存芯片的实际性能写入到ROM芯片中.在我们启动计算机以后,主板

如何在Linux操作系统下检测内存泄漏

1.开发背景: 在 Windows 下使用 VC 编程时,我们通常需要 DEBUG 模式下运行程序,而后调试器将在退出程序时,打印出程序运行过程中在堆上分配而没有释放的内存信息,其中包括代码文件名.行号以及内存大小.该功能是 MFC Framework 提供的内置机制,封装在其类结构体系内部. 在 Linux 或者 Unix 下,我们的 C++ 程序缺乏相应的手段来检测内存信息,而只能使用 top 指令观察进程的动态内存总额.而且程序退出时,我们无法获知任何内存泄漏信息.为了更好的辅助在 lin