搜索法
這種方法主要是對每一種病毒含有的特定字符串進(jìn)行掃描,如果在被檢測對象內部發(fā)現了某一種特定字節串,就表明發(fā)現了該字節串所代表的病毒。國外稱(chēng)這種按搜索法工作的病毒掃描軟件為“Scanner”。
這種病毒掃描軟件由兩部分組成:一部分是病毒代碼庫,含有經(jīng)過(guò)特別選定的各種電腦病毒的代碼串;另一部分是利用該代碼庫進(jìn)行掃描的掃描程序,病毒掃描程序能識別的電腦病毒的數目完全取決于病毒代碼庫內所含病毒種類(lèi)的多少。
病毒代碼串的選擇是非常重要的,短小的病毒代碼只有一百多個(gè)字節,長(cháng)的也只有10KB字節。一定要在仔細分析程序之后選出*代表特性的,足以將該病毒區別于其它病毒和該病毒的其它變種的代碼串。
一般情況下,代碼串是由連續若干個(gè)字節組成的,但是有些掃描軟件采用的是可變長(cháng)串,即在串中包含有一個(gè)到幾個(gè)“模糊”字節。掃描軟件遇到這種串時(shí),只要除“模糊”字節之外的字串都能完好匹配,就也能夠判別出病毒。另外,特征串還必須能將病毒與正常的非病毒程序區,不然就會(huì )出現“假報、誤報”。
特征字識別法
這是基于特征串掃描法發(fā)展起來(lái)的一種方式,運行速度較快、誤報頻率較低。特征字識別法只須從病毒體內抽取很少的幾個(gè)關(guān)鍵特征字,組成特征字庫。由于需要處理的字節很少,又不必進(jìn)行串匹配,因此大大加快了識別速度,當被處理的程序很大時(shí),用這種辦法比較合適。
由于特征字識別法更注意電腦病毒的“程序活性”,因此減少了錯報的可能性。使用基于特征串掃描法的查病毒軟件方法與使用基于特征字識別法的查病毒軟件方法是一樣的,只要運行查毒程序,就能將已知的病毒檢查出來(lái)。這兩種方法的使用,都須要不斷地對病毒庫進(jìn)行擴充,一旦捕捉到病毒,經(jīng)過(guò)提取特征并加入到病毒庫,就能使查病毒程序多檢查出一種新病毒來(lái)。
比較法
這是用原始備份與被檢測的引導扇區或被檢測的文件進(jìn)行比較的方法,可以用打印的代碼清單(比如Debug的D命令輸出格式)進(jìn)行比較,也可用程序來(lái)進(jìn)行比較(如DOS的DISKCOMP、COMP或PCTOOLS等其它軟件)。
比較法不需要專(zhuān)用的查病毒程序,只要用常規DOS軟件和PCTOOLS等工具軟件就可以進(jìn)行,而且還可以發(fā)現那些尚不能被現有的殺毒軟件發(fā)現的計算機病毒。因為病毒傳播得很快,新病毒層出不窮,而目前還沒(méi)有能查出一切病毒的通用程序,或通過(guò)代碼分析,可以判定某個(gè)程序中是否含有病毒的查毒程序,所以只有靠比較法和分析法,或這兩種方法相結合來(lái)發(fā)現新病毒。
對硬盤(pán)的主引導區或對DOS的引導扇區作檢查,用比較法能發(fā)現其中的程序源代碼是否發(fā)生了變化。由于要進(jìn)行比較,因此保留好原始備份是非常重要的。制作備份時(shí)必須在無(wú)電腦病毒的環(huán)境里進(jìn)行,制作好的備份必須妥善保管,寫(xiě)好標簽,貼好寫(xiě)保護。比較法的好處是簡(jiǎn)單、方便,不用專(zhuān)用軟件;缺點(diǎn)是無(wú)法確認病毒的種類(lèi)名稱(chēng)。
另外,造成被檢測程序與原始備份之間差別的原因尚需進(jìn)一步驗證,以查明是電腦病毒造成的,還是DOS數據被偶然原因,如突然停電、程序失控、惡意程序等破壞的。這些要用到后面講的分析法,查看變化部分代碼的性質(zhì),以此來(lái)確認是否存在病毒?! 》治龇?
這種方法一方面可以確認被觀(guān)察的磁盤(pán)引導區和程序中是否含有病毒,另一方面可以辨認病毒的類(lèi)型和種類(lèi),判定是否為一種新病毒,另外還可以搞清楚病毒體的大致結構,提取用于特征識別的字節串或特征字,增添到病毒代碼庫中供病毒掃描和識別程序使用。同時(shí),詳細地分析病毒代碼,還有助于制定相應的反病毒方案。
與前三種檢測病毒的方法不同,使用分析法檢測病毒,除了要具有相關(guān)的知識外,還需要使用Debug、Proview等分析工具程序和專(zhuān)用的試驗用計算機。因為即使是很精通病毒的技術(shù)人員,使用性能完善的分析軟件,也不能完全保證在短時(shí)間內將病毒代碼分析清楚;而病毒則有可能在被分析階段繼續傳染甚至發(fā)作,把軟盤(pán)、硬盤(pán)內的數據完全毀壞掉,所以分析工作必須在專(zhuān)門(mén)的試驗用PC機上進(jìn)行,不怕其中的數據被破壞。
不具備必要的條件,不要輕易開(kāi)始分析工作。很多電腦病毒采用了自加密、抗跟蹤等技術(shù),使得分析病毒的工作經(jīng)常是冗長(cháng)枯燥的。特別是某些文件型病毒的源代碼可達10KB以上,與系統的牽扯層次很深,使詳細的剖析工作十分復雜。病毒檢測的分析法是反病毒工作中不可或缺的重要技術(shù),任何一個(gè)性能優(yōu)良的反病毒系統的研制和開(kāi)發(fā)都離不開(kāi)專(zhuān)門(mén)人員對各種病毒詳盡、認真的分析。