前言:本站為你精心整理了計算機病毒殺毒工具設(shè)計探索范文,希望能為你的創(chuàng)作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。
文件掃描部分文件掃描根據(jù)特征碼來查找病毒文件,病毒特征碼指信息管理人員根據(jù)病毒文件行為來發(fā)現(xiàn)病毒文件,然后利用MD5算法唯一性和不可逆性來產(chǎn)生病毒文件的特征碼,把病毒文件特征碼寫到配置文件中去。文件掃描首先從配置文件中讀取配置文件所定義的病毒特征碼,通過遞歸遍歷磁盤上的所有文件,在掃描過程中,計算對正在被掃描的文件特征值與所定義的病毒特征碼進行一一比較,如果匹配成功,則證明該文件為病毒文件,然后通過DOS刪除方式刪除病毒文件。根據(jù)病毒文件特征碼來區(qū)別正常文件和病毒文件是需要解決的核心問題之一。取病毒特征碼要求這個特征碼具有唯一性[5]。這個特征碼如果不具有唯一性,那么很有可能出現(xiàn)正常文件和病毒文件的特征碼一樣的情況,這樣程序就會將正常文件當(dāng)病毒文件予以刪除,出現(xiàn)誤殺現(xiàn)象。利用文件的MD5值來識別病毒,是簡單有效的方法之一。MD5的作用是對一段信息(文件)生成信息摘要,該摘要對該信息具有唯一性,文件經(jīng)過MD5算法產(chǎn)生的信息摘要是唯一的,也就是不同文件的MD5值是不同的,把這個摘要當(dāng)作病毒的特征碼作為檢測病毒的依據(jù)[5]。如何來找到病毒文件?根據(jù)病毒的行為特征來找病毒文件,而病毒的行為特征主要有以下幾點:盜用截流系統(tǒng)中斷、修改內(nèi)存總量和內(nèi)存控制塊、對可執(zhí)行文件做寫入操作、引導(dǎo)扇區(qū)或執(zhí)行格式化磁盤等可疑動作,我們根據(jù)這些病毒行為發(fā)現(xiàn)病毒文件,并將此文件來產(chǎn)生該文件MD5值,這樣就生成了該病毒的特征碼[6]。以explore.exe木馬病毒為例:病毒行為特征為系統(tǒng)的內(nèi)存被大量占用,在沒啟動explore.exe的情況下進程中有explore,系統(tǒng)死慢等現(xiàn)象,把explore.exe病毒文件找到并利用MD5工具產(chǎn)生MD5值為9536b7519021059979511cab4536a0aa,把該文件MD5值通過記事本添加到配置的文件中進行文件掃描來檢測病毒文件。程序在發(fā)現(xiàn)病毒文件后,DOS刪除和重啟刪除相結(jié)合的方式刪除病毒,因為只有在純DOS下才能殺毒干凈。文件全盤掃描代碼是利用Windows操作系統(tǒng)的應(yīng)用程序接口提供的CFileFind類來實現(xiàn)的。文件掃描用BrowseFile(CStringstrFile)和DeleteDirectory(stringdir)DeleteFile(CStringstrFile)函數(shù)。
進程強制結(jié)束部分首先從配置文件中讀取配置文件所定義的病毒進程名,然后枚舉當(dāng)前系統(tǒng)正在運行的進程,如果發(fā)現(xiàn)系統(tǒng)當(dāng)前運行的進程中,存在與所定義的病毒進程同名的進程,予以強制結(jié)束,詳細流程圖如圖3所示,需要解決的兩個問題是:一是如何枚舉系統(tǒng)當(dāng)前進程,二是如何強制結(jié)束病毒進程。對于第一個問題,可以使用Windows的API函數(shù)CreateToolhelp32Snapshot,利用這個函數(shù)可以獲得進程快照,然后可以利用Process32First和Process32Next函數(shù)枚舉系統(tǒng)當(dāng)前進程。對于第二個問題,可以使用TerminateProcess函數(shù)和提升權(quán)限相結(jié)合的方式來強制結(jié)束病毒進程。單純采用Termi-nateProcess函數(shù)還不足以強制結(jié)束病毒進程,要想強制結(jié)束病毒進程,還需要提升專殺程序本身權(quán)限。
病毒注冊表項刪除部分除病毒并不是單純地將病毒文件刪除就可以的,病毒運行時所寫入的注冊表項也需要清理,如果不清理,可能會導(dǎo)致系統(tǒng)出現(xiàn)各種異常。把需要刪除的注冊表項寫到配置文件中,然后進行查找并執(zhí)行刪除操作。如何去找需要刪除注冊表項呢?我們就需要借助一款工具SREng(SystemRepairEngineer)或者在虛擬機內(nèi),運行病毒樣本(在文件掃描過程中已經(jīng)找到有問題的文件),通過ProcessMonitor監(jiān)控病毒行為,來查看對系統(tǒng)中的任何文件和注冊表操作同時進行監(jiān)視和記錄,通過注冊表和文件讀寫的變化,來配置要刪除的注冊表項。軟件SREng智能掃描可生成SREng的日志,通過分析這個日志,我們便能知道病毒在我們的機器里面干了什么。生成的日志里可看到許多信息,當(dāng)中就有注冊表信息,對注冊表信息進行分析可找到有問題的注冊表項。本文借助ProcessMonitor監(jiān)控病毒行為,來配置要刪除的注冊表項。詳細的流程圖如圖4所示。由于是對注冊表的操作,需要用到的API有RegOpenKeyEx、RegDeleteKey、Reg-DeleteValue、RegCloseKey四個函數(shù)。
系統(tǒng)核心文件替換部分從配置文件中讀取配置文件所定義的需要替換的系統(tǒng)文件的完整路徑,然后在DOS下進行替換操作。
測試結(jié)果
軟件的運行環(huán)境是WindowsXP操作系統(tǒng),程序運行前要產(chǎn)生病毒文件的MD5值并填寫到病毒配置文件里,然后運行,發(fā)現(xiàn)病毒后會在檢測完重啟在DOS下進行刪除,圖6所示是配置文件和發(fā)現(xiàn)病毒結(jié)果。該軟件現(xiàn)在已經(jīng)到反病毒論壇上,網(wǎng)址是//bbs.51cto.com/thread-828626-1.html,軟件名稱《通用病毒自定義專殺工具》供網(wǎng)友們使用測試,得到大家一致好評,但也發(fā)現(xiàn)一些BUG,軟件也不斷更新和修改。反映問題結(jié)果有如下幾點:(1)在配置文件特征碼數(shù)量增多時,發(fā)現(xiàn)文件掃描部分的效率降低,用時增加。軟件已經(jīng)采用將配置文件讀入的病毒特征碼存儲在哈希表中,減少匹配的次數(shù),提高程序掃描效率。(2)程序暴力刪除所支持的平臺問題:本程序暴力刪除病毒文件的方式采用的是DOS刪除和重啟刪除相結(jié)合的方式,DOS刪除方式不支持Windows7操作系統(tǒng),所以本程序在Win-dows7平臺下運行的時候,對病毒文件只能采取重啟刪除的方式,這樣直接導(dǎo)致Windows7平臺下的驅(qū)動級病毒的文件無法有效清除。
結(jié)語
自定義計算機病毒專殺工具為信息管理人員在病毒庫還沒有更新的情況下提供方便反病毒工具,管理人員可根據(jù)文件的病毒行為,用MD5算法的唯一性和不可逆性來產(chǎn)生病毒特征碼,然后填寫配置文件,就可生成不同病毒專殺工具,提高病毒處理效率和計算機安全性。
作者:丁忠林張瑾單位:天津科技大學(xué)計算機科學(xué)與信息工程學(xué)院福建省勞動保障監(jiān)察總隊