防病毒技術(shù)-起死回生的最終選擇_第1頁
防病毒技術(shù)-起死回生的最終選擇_第2頁
防病毒技術(shù)-起死回生的最終選擇_第3頁
防病毒技術(shù)-起死回生的最終選擇_第4頁
防病毒技術(shù)-起死回生的最終選擇_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、病毒:是指編制或者在計算機程序中插入的破壞計算機功能或者破壞數(shù)據(jù),影響計算機使用并且能夠自我復(fù)制的一組計算機指令或者程序代碼。病毒一般由病毒程序和宿主HOST組成。病毒的特性:可執(zhí)行性、傳染性、非授權(quán)性、隱蔽性、潛伏性、可觸發(fā)性、破壞性、主動性、針對性、衍生性、寄生性、不可預(yù)見性、誘惑欺騙性、持久性。根據(jù)病毒破壞的能力可劃分為:無害型、無危險型、危險型、非常危險型。按照病毒的破壞情況又可分為兩類:良性病毒、惡性病毒。按照病毒攻擊的操作系統(tǒng)分類:攻擊DOS系統(tǒng)的病毒、攻擊Windows系統(tǒng)的病毒、攻擊UNIX系統(tǒng)的病毒、攻擊OS/2系統(tǒng)的病毒、攻擊Macintosh系統(tǒng)的病毒、其它操作系統(tǒng)上的病

2、毒。按照病毒攻擊的機型分類:攻擊微型計算機的病毒、攻擊工作站的病毒、攻擊小型計算機的病毒、攻擊中、大型計算機的病毒。按病毒特有的算法分類:伴隨型病毒、蠕蟲型病毒、寄生型病毒、練習(xí)型病毒、詭秘型病毒、變形病毒。按病毒的鏈接方式分類:源碼型病毒、嵌入型病毒、外殼(shell)型病毒、譯碼型病毒、操作系統(tǒng)型病毒。按照病毒的傳播媒介分類:單機病毒、網(wǎng)絡(luò)病毒。病毒按寄生對象分為:引導(dǎo)型病毒、文件型病毒、混合型病毒。病毒按是否駐留內(nèi)存分為:駐留內(nèi)存型、不駐留內(nèi)存型。計算機病毒在傳播過程中存在兩種狀態(tài),即靜態(tài)和動態(tài)。靜態(tài)病毒,是指存在于輔助存儲介質(zhì)中的計算機病毒,一般不能執(zhí)行病毒的破壞或表現(xiàn)功能,其傳播只能

3、通過文件下載(拷貝)實現(xiàn),因為靜態(tài)病毒尚未被加載、尚未進入內(nèi)存,不可能獲取系統(tǒng)的執(zhí)行權(quán)限。病毒之所以處于靜態(tài),有兩種可能:沒有用戶啟動該病毒或運行感染了該病毒的文件;該病毒存在于不可執(zhí)行它的系統(tǒng)中。當(dāng)病毒完成初始引導(dǎo),進入內(nèi)存后,便處于動態(tài)。動態(tài)病毒本身處于運行狀態(tài),通過截流盜用系統(tǒng)中斷等方式監(jiān)視系統(tǒng)運行狀態(tài)或竊取系統(tǒng)控制權(quán)。病毒的主動傳染和破壞作用,都是動態(tài)病毒的“杰作”。病毒由靜態(tài)轉(zhuǎn)變?yōu)閯討B(tài)的過程,稱為病毒的啟動。內(nèi)存中的動態(tài)病毒又有兩種狀態(tài):可激活態(tài)和激活態(tài)。當(dāng)內(nèi)存中的病毒代碼能夠被系統(tǒng)的正常運行機制所執(zhí)行時,動態(tài)病毒就處于可激活態(tài)(一般而言,動態(tài)病毒都是可激活的)。系統(tǒng)正在執(zhí)行病毒代碼

4、時,動態(tài)病毒就處于激活態(tài)。病毒處于激活態(tài)時,不一定進行傳染和破壞;但進行傳染和破壞時,必然處于激活態(tài)。內(nèi)存中的病毒還有一種較為特殊的狀態(tài)失活態(tài)。一般情況下不會出現(xiàn)這種狀態(tài),它的出現(xiàn)一般是由于用戶對病毒的干預(yù)(用殺毒軟件或手工方法)。處于失活態(tài)的病毒不可能進行傳染或破壞,它與靜態(tài)病毒的不同僅在于病毒代碼在內(nèi)存中,但得不到執(zhí)行。計算機病毒的基本環(huán)節(jié)(完整的傳播破壞過程):分發(fā)拷貝階段、潛伏繁殖階段、破壞表現(xiàn)階段。計算機病毒的邏輯結(jié)構(gòu):感染標(biāo)志、引導(dǎo)模塊、感染模塊、破壞模塊。PE文件PE的意思是可移植、可執(zhí)行,它是win32可執(zhí)行文件的標(biāo)準(zhǔn)格式。(并不能在其他操作系統(tǒng)上運行)一般來說,病毒往往先于H

5、OST程序獲得控制權(quán)。 運行Win32病毒的一般流程示意如下:用戶點擊或系統(tǒng)自動運行HOST程序;裝載HOST程序到內(nèi)存;通過PE文件中的AddressOfEntryPoint加ImageBase之和,定位第一條語句的位置(程序入口);從第一條語句開始執(zhí)行(這時執(zhí)行的其實是病毒代碼);病毒主體代碼執(zhí)行完畢,將控制權(quán)交給HOST程序原來的入口代碼;HOST程序繼續(xù)執(zhí)行。PE文件格式DOS MZ文件頭后面是DOS插樁程序(DOS Stub),這使得PE文件成為一個合法性的MS-DOS可執(zhí)行文件。可以通過IMAGE_DOS_HEADER結(jié)構(gòu)來識別一個合法的DOS頭,可以通過該結(jié)構(gòu)的e_lfanew(

6、偏移60,32bits)成員來找到PE開始的標(biāo)志0x50540000(PE00)。病毒通過“MZ”、“PE”這兩個標(biāo)志,初步判斷當(dāng)前程序是否是目標(biāo)文件PE文件。LONG e_lfanew;/3CH,新EXE頭部的文件地址然后是是PE文件頭,PE header是IMAGE_NT_HEADERS的簡稱,即NT映像頭(PE文件頭),存放PE整個文件信息分布的重要字段,包含了許多PE裝載器用到的重要域。(PE裝載器將從DOS MZ header中找到PE header的起始偏移量,從而跳過DOS Stub直接定位到真正的文件頭PE header)PE文件頭結(jié)構(gòu):IMAGE_NT_HEADERS STR

7、UCT Signature dd ? FileHeader IMAGE_FILE_HEADER OptionalHeader IMAGE_OPTIONAL_HEADER32 IMAGE_NT_HEADERS ENDSPE文件頭開始是一個4H字節(jié)(32位)的PE文件標(biāo)志0x50540000即PE00,接著就是PE的映像文件頭(14H字節(jié)),(IMAGE_FILE_HEADER)包含的信息由該程序運行的平臺、有多少個節(jié)、文件鏈接的時間、它是一個EXE文件還是一個動態(tài)鏈接庫(dll)或是其他。然后是可選映像頭(IMAGE_OPTIONAL_HEADER32),實際上總是存在,包含了關(guān)于PE文件的邏輯

8、分布信息、程序加載信息、開始目錄、保留堆棧數(shù)量、數(shù)據(jù)段大小等??蛇x映像頭中還有一個非常重要的域數(shù)據(jù)目錄表(IMAGE_DATA_DIRECTORY),表中的每一項都是一個指向某一節(jié)的指針。PE文件頭下面的就是節(jié)表(IMAGE_SECTION_HEADER)和節(jié),節(jié)通過節(jié)表實現(xiàn)索引,實際上,節(jié)的內(nèi)容才是真正要執(zhí)行的程序和相關(guān)數(shù)據(jù)。節(jié)表是緊挨著NT映像頭的一結(jié)構(gòu)數(shù)組,其成員的數(shù)目由映像文件頭中NumberOfSections決定。代碼節(jié)的屬性一般是60000020H,即“可執(zhí)行”、“可讀”和“節(jié)中包含代碼”;數(shù)據(jù)節(jié)的屬性一般是C0000040H,即“可讀”、“可寫”和“包含已初始化數(shù)據(jù)” ;病毒在

9、添加新節(jié)時,都會將新添加的節(jié)的屬性設(shè)置為可讀、可寫、可執(zhí)行。每個節(jié)是一塊擁有共同屬性的數(shù)據(jù),比如代碼/數(shù)據(jù)、讀/寫等,節(jié)的劃分是基于各組數(shù)據(jù)的共同屬性而不是邏輯概念如果PE文件中的數(shù)據(jù)/代碼擁有相同屬性,它們就能被歸入同一節(jié)中。代碼節(jié).text;引入函數(shù)節(jié).idata;引出函數(shù)節(jié).edata;數(shù)據(jù)節(jié).data、.bss資源節(jié).rsrc;重定位節(jié)相對虛擬地址(RVA)是一個相對于PE文件映射到內(nèi)存的基地址的偏移量,用在不知道基地址的情況下表示一個內(nèi)存地址。虛擬地址VA=相對虛擬地址RVA+基地址imagebase。使用RVA時為了減少PE裝載器的負擔(dān)。病毒重定位原因:病毒不可避免也要用到變量(常

10、量),當(dāng)病毒感染HOST程序后,由于其依附到不同HOST程序中的位置各有不同,病毒隨著HOST載入內(nèi)存后,病毒中的各個變量(常量)在內(nèi)存中的位置自然也會隨著發(fā)生變化。VStart :; 病毒起始 call delta; 棧頂壓入delta在進程空間的真正/有效地址delta :pop ebp ; delta的真正/有效地址彈入ebp寄存器中sub ebp , offset delta VStart ; 得到VStart的真正/有效地址(得到一個偏移差,變量加上該值進行重定位)lea eax , ebp + offset varX ; eax中存入varX的/有效地址如果病毒程序中有一個變量va

11、r1,那么該變量實際在內(nèi)存中的地址應(yīng)該是ebp(offset var1offset delta),即參考量delta在內(nèi)存中的地址其它變量與參考量之間的距離=其它變量在內(nèi)存中的真正地址有時候我們也采用(ebpoffset delta)offset var1的形式進行變量var1的重定位。WSH是Windows Scripting Host(Windows腳本宿主)的縮略形式,是一個基于32位Windows平臺、并獨立于語言的腳本運行環(huán)境,是一種批次語言/自動執(zhí)行工具文件名為WScript.exe(若是在DOS命令提示符下,則為CScript.exe,命令格式:CScript FileName.

12、vbs)WScript.exe使得腳本可以被執(zhí)行,就象執(zhí)行批處理一樣。腳本病毒具有如下幾個特點:編寫簡單破壞力大、感染力強、傳播范圍大、病毒源碼容易被獲取,變種多、欺騙性強、使得病毒生產(chǎn)機實現(xiàn)起來非常容易。VBS腳本病毒如何獲得控制權(quán):修改注冊表項、通過映射文件執(zhí)行方式、欺騙用戶,讓用戶自己執(zhí)行、desktop.ini和folder.htt互相配合。VBS腳本病毒的弱點:絕大部分VBS腳本病毒運行的時候需要用到一個對象:FileSystemObject;VB Script代碼是通過WSH來解釋執(zhí)行的;VBS腳本病毒的運行需要其關(guān)聯(lián)程序Wscript.exe的支持;通過網(wǎng)頁傳播的病毒需要Acti

13、veX的支持;通過Email傳播的病毒需要OutlookExpress的自動發(fā)送郵件功能支持,但是絕大部分病毒都以Email為主要傳播方式。防范措施:禁用文件系統(tǒng)對象FileSystemObject;卸載WSH;刪除VBS、VBE、JS、JSE文件后綴名與應(yīng)用程序的映射;將WScript.exe更改名稱或者刪除;自定義安全級別,把與“ActiveX控件及插件”有關(guān)的一切設(shè)為禁用;禁止OutlookExpress的自動收發(fā)郵件功能;顯示擴展名,避免病毒利用文件擴展名作文章;將系統(tǒng)的網(wǎng)絡(luò)連接的安全級別設(shè)置至少為“中等”;安裝、使用殺毒軟件。判斷感染條件:1:是否PE;2:是否已感染;3:是否有足夠

14、的空間;4:winzip自解壓文件Mov ebx,eaxAssume ebx:ptr IMAGE_DOS_HEADERMov eax,ebx.e_lfanewTest eax,0fffff000hJnz EndDir ;Header+stub不可能太大,超過4096BMov pe _header_offebp,eaxAdd ebx,eax ;此時ebx指向PE文件頭Assume ebx:ptr IMAGE_NT_HEADERSCmpebx.Signature,IMAGE_NT_STGNATURE ;是PE文件?Jnz UnMapCmp word ptrebx+lah,FB; 已感染Jz UnM

15、ap指向第二個節(jié)判斷是winzip自解壓文件,是就不感染Move eax,ebxAdd eax,18h ;PE HEADER(4)+FILEHEADER(14)Movzx esi,ebx FileHeader.SizeOfOptionalHeaderAdd eax,esi ;eax指向第一個節(jié)表Assume eax:ptr IMAGE_SECTION_HEADERMov edx,eax.PointerToRawDataAdd edx,ebxSub edx,pe_header_offebpSub edx,4Cmp dword ptredx,0Jnz UnMapAdd eax,28h ;eax指向

16、第二個節(jié)表Mov edx,eaxAssume edx:ptr IMAGE_SECTION_HEADERMov eax,edx.PointerToRawDataAdd eax,ebxSub eax,pe_header_offebpAdd eax,12h ;加10h+2h(10h處為”winzip”)Cmp dword ptr eax, piZnJz UnMapPush ebx.OptionalHeader.FileAlignmentPop FileAlignebp乾坤大挪移,將節(jié)表移到PE頭的最后Mov edi,ebx.OptionalHeader.SizeOfHeadersAdd edi,ebxSub edi,pe_header_offebp ;edi指向文件中的第一個節(jié)Dec edi ;edi指向PE頭的最后一個字節(jié)Mov esi,ebxAdd esi,18hMovzx eax,ebx.Fi

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論