首页 > 文章中心 > 正文

计算机病毒杀毒工具设计探索

计算机病毒杀毒工具设计探索

文件扫描部分文件扫描根据特征码来查找病毒文件,病毒特征码指信息管理人员根据病毒文件行为来发现病毒文件,然后利用MD5算法唯一性和不可逆性来产生病毒文件的特征码,把病毒文件特征码写到配置文件中去。文件扫描首先从配置文件中读取配置文件所定义的病毒特征码,通过递归遍历磁盘上的所有文件,在扫描过程中,计算对正在被扫描的文件特征值与所定义的病毒特征码进行一一比较,如果匹配成功,则证明该文件为病毒文件,然后通过DOS删除方式删除病毒文件。根据病毒文件特征码来区别正常文件和病毒文件是需要解决的核心问题之一。取病毒特征码要求这个特征码具有唯一性[5]。这个特征码如果不具有唯一性,那么很有可能出现正常文件和病毒文件的特征码一样的情况,这样程序就会将正常文件当病毒文件予以删除,出现误杀现象。利用文件的MD5值来识别病毒,是简单有效的方法之一。MD5的作用是对一段信息(文件)生成信息摘要,该摘要对该信息具有唯一性,文件经过MD5算法产生的信息摘要是唯一的,也就是不同文件的MD5值是不同的,把这个摘要当作病毒的特征码作为检测病毒的依据[5]。如何来找到病毒文件?根据病毒的行为特征来找病毒文件,而病毒的行为特征主要有以下几点:盗用截流系统中断、修改内存总量和内存控制块、对可执行文件做写入操作、引导扇区或执行格式化磁盘等可疑动作,我们根据这些病毒行为发现病毒文件,并将此文件来产生该文件MD5值,这样就生成了该病毒的特征码[6]。以explore.exe木马病毒为例:病毒行为特征为系统的内存被大量占用,在没启动explore.exe的情况下进程中有explore,系统死慢等现象,把explore.exe病毒文件找到并利用MD5工具产生MD5值为9536b7519021059979511cab4536a0aa,把该文件MD5值通过记事本添加到配置的文件中进行文件扫描来检测病毒文件。程序在发现病毒文件后,DOS删除和重启删除相结合的方式删除病毒,因为只有在纯DOS下才能杀毒干净。文件全盘扫描代码是利用Windows操作系统的应用程序接口提供的CFileFind类来实现的。文件扫描用BrowseFile(CStringstrFile)和DeleteDirectory(stringdir)DeleteFile(CStringstrFile)函数。

进程强制结束部分首先从配置文件中读取配置文件所定义的病毒进程名,然后枚举当前系统正在运行的进程,如果发现系统当前运行的进程中,存在与所定义的病毒进程同名的进程,予以强制结束,详细流程图如图3所示,需要解决的两个问题是:一是如何枚举系统当前进程,二是如何强制结束病毒进程。对于第一个问题,可以使用Windows的API函数CreateToolhelp32Snapshot,利用这个函数可以获得进程快照,然后可以利用Process32First和Process32Next函数枚举系统当前进程。对于第二个问题,可以使用TerminateProcess函数和提升权限相结合的方式来强制结束病毒进程。单纯采用Termi-nateProcess函数还不足以强制结束病毒进程,要想强制结束病毒进程,还需要提升专杀程序本身权限。

病毒注册表项删除部分除病毒并不是单纯地将病毒文件删除就可以的,病毒运行时所写入的注册表项也需要清理,如果不清理,可能会导致系统出现各种异常。把需要删除的注册表项写到配置文件中,然后进行查找并执行删除操作。如何去找需要删除注册表项呢?我们就需要借助一款工具SREng(SystemRepairEngineer)或者在虚拟机内,运行病毒样本(在文件扫描过程中已经找到有问题的文件),通过ProcessMonitor监控病毒行为,来查看对系统中的任何文件和注册表操作同时进行监视和记录,通过注册表和文件读写的变化,来配置要删除的注册表项。软件SREng智能扫描可生成SREng的日志,通过分析这个日志,我们便能知道病毒在我们的机器里面干了什么。生成的日志里可看到许多信息,当中就有注册表信息,对注册表信息进行分析可找到有问题的注册表项。本文借助ProcessMonitor监控病毒行为,来配置要删除的注册表项。详细的流程图如图4所示。由于是对注册表的操作,需要用到的API有RegOpenKeyEx、RegDeleteKey、Reg-DeleteValue、RegCloseKey四个函数。

系统核心文件替换部分从配置文件中读取配置文件所定义的需要替换的系统文件的完整路径,然后在DOS下进行替换操作。

测试结果

软件的运行环境是WindowsXP操作系统,程序运行前要产生病毒文件的MD5值并填写到病毒配置文件里,然后运行,发现病毒后会在检测完重启在DOS下进行删除,图6所示是配置文件和发现病毒结果。该软件现在已经到反病毒论坛上,网址是//bbs.51cto.com/thread-828626-1.html,软件名称《通用病毒自定义专杀工具》供网友们使用测试,得到大家一致好评,但也发现一些BUG,软件也不断更新和修改。反映问题结果有如下几点:(1)在配置文件特征码数量增多时,发现文件扫描部分的效率降低,用时增加。软件已经采用将配置文件读入的病毒特征码存储在哈希表中,减少匹配的次数,提高程序扫描效率。(2)程序暴力删除所支持的平台问题:本程序暴力删除病毒文件的方式采用的是DOS删除和重启删除相结合的方式,DOS删除方式不支持Windows7操作系统,所以本程序在Win-dows7平台下运行的时候,对病毒文件只能采取重启删除的方式,这样直接导致Windows7平台下的驱动级病毒的文件无法有效清除。

结语

自定义计算机病毒专杀工具为信息管理人员在病毒库还没有更新的情况下提供方便反病毒工具,管理人员可根据文件的病毒行为,用MD5算法的唯一性和不可逆性来产生病毒特征码,然后填写配置文件,就可生成不同病毒专杀工具,提高病毒处理效率和计算机安全性。

作者:丁忠林张瑾单位:天津科技大学计算机科学与信息工程学院福建省劳动保障监察总队