寄生也是計算機(jī)病毒的特性之一,那么,計算機(jī)病毒的寄生方式有哪些呢?隨小編一起了解下吧。
計算機(jī)病毒可以依附于其它媒體寄生的能力,侵入后的病毒潛伏到條件成熟才發(fā)作, 會使電腦變慢。那么,計算機(jī)病毒的寄生方式有哪些呢?
小編了解到,根據(jù)病毒代碼加入的方式不同,寄生病毒可以分為“頭寄生”、“尾寄生”、“中間插入”和“空洞利用”四種。
“頭寄生”:
實現(xiàn)將病毒代碼放到程序的頭上有兩種方法,一種是將原來程序的前面一部分拷貝到程序的最后,然后將文件頭用病毒代碼覆蓋;另外一種是生成一個新的文件,首先在頭的位置寫上病毒代碼,然后將原來的可執(zhí)行文件放在病毒代碼的后面,再用新的文件替換原來的文件從而完成感染。使用“頭寄生”方式的病毒基本上感染的是批處理病毒和COM格式的文件,因為這些文件在運(yùn)行的時候不需要重新定位,所以可以任意調(diào)換代碼的位置而不發(fā)生錯誤。
當(dāng)然,隨著病毒制作水平的提高,很多感染DOS下的EXE文件和視窗系統(tǒng)的EXE文件的病毒也是用了頭寄生的方式,為使得被感染的文件仍然能夠正常運(yùn)行,病毒在執(zhí)行原來程序之前會還原出原來沒有感染過的文件用來正常執(zhí)行,執(zhí)行完畢之后再進(jìn)行一次感染,保證硬盤上的文件處于感染狀態(tài),而執(zhí)行的文件又是一切正常的。
“尾寄生”:
由于在頭部寄生不可避免的會遇到重新定位的問題,所以最簡單也是最常用的寄生方法就是直接將病毒代碼附加到可執(zhí)行程序的尾部。對于DOS環(huán)境下COM可執(zhí)行文件來說,由于COM文件就是簡單的二進(jìn)制代碼,沒有任何結(jié)構(gòu)信息,所以可以直接將病毒代碼附加到程序的尾部,然后改動COM文件開始的3個字節(jié)為跳轉(zhuǎn)指令:
JMP [病毒代碼開始地址]
對于DOS環(huán)境下的EXE文件,有兩種處理的方法,一種是將EXE格式轉(zhuǎn)換成COM格式再進(jìn)行感染,另外一種需要修改EXE文件的文件頭,一般會修改EXE文件頭的下面幾個部分:
代碼的開始地址
可執(zhí)行文件的長度
文件的CRC校驗值
堆棧寄存器的指針也可能被修改。
對于視窗操作系統(tǒng)下的EXE文件,病毒感染后同樣需要修改文件的頭,這次修改的是PE或者NE的頭,相對于DOS下EXE文件的頭來說,這項工作要復(fù)雜很多,需要修改程序入口地址、段的開始地址、段的屬性等等,由于這項工作的復(fù)雜性,所以很多病毒在編寫感染代碼的時候會包括一些小錯誤,造成這些病毒在感染一些文件的時候會出錯無法繼續(xù),從而幸運(yùn)的造成這些病毒無法大規(guī)模的流行。
感染DOS環(huán)境下設(shè)備驅(qū)動程序(.SYS文件)的病毒會在DOS啟動之后立刻進(jìn)入系統(tǒng),而且對于隨后加載的任何軟件(包括殺毒軟件)來說,所有的文件操作(包括可能的查病毒和殺病毒操作)都在病毒的監(jiān)控之下,在這種情況下干凈的清除病毒基本上是不可能的。
“插入寄生”:
病毒將自己插入被感染的程序中,可以整段的插入,也可以分成很多段,有的病毒通過壓縮原來的代碼的方法,保持被感染文件的大小不變。前面論述的更改文件頭等基本操作同樣需要,對于中間插入來說,要求程序的編寫更加嚴(yán)謹(jǐn),
所以采用這種方式的病毒相對比較少,即使采用了這種方式,很多病毒也由于程序編寫上的錯誤沒有真正流行起來。
“空洞利用”:
對于視窗環(huán)境下的可執(zhí)行文件,還有一種更加巧妙的方法,由于視窗程序的結(jié)構(gòu)非常復(fù)雜,一般里面都會有很多沒有使用的部分,一般是空的段,或者每個段的最后部分。病毒尋找這些沒有使用的部分,然后將病毒代碼分散到其中,這樣就實現(xiàn)了神不知鬼不覺的感染(著名的“CIH”病毒就是用了這種方法)。
以上就是佰佰安全網(wǎng)給大家介紹的計算機(jī)病毒的寄生方式,小伙伴們點(diǎn)擊收藏吧。稍后,我們將去了解如何清除寄生在文件上的病毒,有興趣的朋友,歡迎關(guān)注更多網(wǎng)絡(luò)病毒小知識。
責(zé)任編輯:鄒蘭
2021.11.10 16:12:05
2021.11.02 16:41:59
2021.11.02 16:39:58
2021.11.02 16:38:25
2021.11.02 16:36:23
2021.01.11 13:23:05
07/16在網(wǎng)絡(luò)上發(fā)表過激言論有什么危害?
04/10網(wǎng)絡(luò)安全防范措施與應(yīng)用
05/09電子郵件可以通過哪些方式傳播病毒?
07/17wifi開著時需不需要關(guān)閉移動網(wǎng)絡(luò)數(shù)據(jù)?