亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向PE病毒檢測的 行為特征分析方法研究

        2014-08-15 09:36:11王靜梁大釗吳永順饒麗萍黃曉生
        網(wǎng)絡(luò)空間安全 2014年6期
        關(guān)鍵詞:行為分析病毒檢測

        王靜+++梁大釗+++吳永順+++饒麗萍+++黃曉生

        【摘要】目前,計算機病毒的存在成為了信息安全的一大威脅,其中以Windows32 PE文件為感染目標的PE病毒最為盛行,功能最強,分析難度也最大。對此,本文研究了一種面向PE病毒檢測的行為特征分析方法,詳細分析PE病毒執(zhí)行過程中的關(guān)鍵行為特征、一般行為特征等,并以其十六進制行為字符串特征碼作為PE病毒的檢測依據(jù),通過對可疑PE文件中字符串的匹配實現(xiàn)PE病毒的啟發(fā)式檢測。

        【關(guān)鍵詞】PE病毒;行為分析;病毒檢測;可執(zhí)行文件

        1引言

        隨著計算機技術(shù)的飛速發(fā)展,計算機病毒也層出不窮、日益猖獗,病毒技術(shù)日新月異、紛繁復(fù)雜,成為了信息安全的一大威脅。其中Windows32位的PE(Portable Executable,可移植的執(zhí)行體)病毒最為盛行,破壞力極大,分析難度也最大。它是以Windows系統(tǒng)(Windows 9X、NT、2000)下的具有PE文件結(jié)構(gòu)的可執(zhí)行文件為感染目標,具有極強的技巧性,也使得絕大多數(shù)的病毒高手鐘愛編寫PE病毒,以更好的展現(xiàn)其病毒技術(shù),這也就為廣大反病毒工作人員提出了更多的挑戰(zhàn)。因此,深入分析PE文件結(jié)構(gòu),掌握PE病毒的一般行為特征是有效對抗PE病毒的關(guān)鍵。王成等人提出了基于可疑行為識別的PE病毒檢測方法,研究了Windows 平臺下PE病毒的靜態(tài)檢測;劉帥也提出了一種基于Win32API相關(guān)行為靜態(tài)檢測PE病毒的方法等,這些方法都是通過分析病毒的可能行為實現(xiàn)對未知病毒的啟發(fā)式檢測,只是行為確定和行為識別的方法不同而已。

        本文首先詳細分析了PE病毒實現(xiàn)中具有的主要行為特征,并將其作為判斷PE文件是否可疑的依據(jù),構(gòu)建PE病毒行為字符串特征值,通過獲取目標文件各個節(jié)的十六進制字符串,并與行為特征字符串匹配的方法實現(xiàn)對PE病毒的啟發(fā)式檢測。

        2PE病毒行為特征分析

        不同的PE病毒雖然都會具有不同的傳播和破壞行為,但是為了確保病毒能更容易的獲得運行權(quán),更好地保護自己長久的生存,更準確地執(zhí)行其既定的功能,PE病毒就必定會執(zhí)行一些固有的操作,表現(xiàn)出共性的行為,因此,分析病毒的一般行為特征,可以為更準確地啟發(fā)式病毒查殺提供合理的依據(jù)。

        2.1PE病毒關(guān)鍵行為特征

        2.1.1 病毒中變量的重定位

        PE病毒為了完成特定程序性功能會使用到若干變量,而這些變量在數(shù)據(jù)寫入目標文件之前已經(jīng)經(jīng)過編譯,被分配了一個確定的內(nèi)存地址,當將數(shù)據(jù)寫入目標PE文件之后,變量并沒有重新編譯,仍然使用原有地址,此時會導(dǎo)致該地址與同樣已經(jīng)編譯好的目標PE文件中的地址發(fā)生沖突,導(dǎo)致該變量無法使用,而目標PE文件也將無法執(zhí)行,因此必須對PE病毒寫入的變量進行重定位。

        2.1.2 尋找系統(tǒng)內(nèi)存中Kernel32的基地址

        PE病毒在傳播與感染過程中使用到文件搜索、文件讀寫等一系列的API函數(shù),這些API函數(shù)的地址已經(jīng)動態(tài)的映射在目標PE文件的內(nèi)存空間中,要使用這些必須的API函數(shù)就要在目標PE文件中尋找相關(guān)API函數(shù)的地址。由于Kernel32.dll中包含兩個重要的API函數(shù)LoadLIbrary和GetProcAddress,可以通過其實現(xiàn)對系統(tǒng)中任意dll格式文件中導(dǎo)出的任意函數(shù)在進程空間的地址的獲取,因此,對于PE病毒來說,動態(tài)獲取API函數(shù)的首要操作就是找到Kernel32.dll的基地址。

        2.2PE病毒的基本行為特征

        PE病毒的基本行為是在不破壞感染目標PE文件的基礎(chǔ)上,向目標PE文件寫入具有特定破壞和傳播功能的數(shù)據(jù),既可以確保原PE文件的正常執(zhí)行而不被用戶發(fā)現(xiàn),又可以寄生于該宿主文件,隨文件的運行而執(zhí)行其特定的功能。

        為了實現(xiàn)該目的,PE病毒一般會完成幾個操作。

        (1)搜索磁盤中的目標PE文件

        常見的PE病毒都會搜索并判斷系統(tǒng)中的PE格式文件,將搜索到的未被其感染過的PE格式文件作為其感染目標。常用的函數(shù)包括FindFile、FindNextFile、IsDirectory、GetFilePath、Find(“.exe”)等。

        (2)將目標PE文件映射進內(nèi)存

        PE病毒為了向目標PE格式文件寫入設(shè)定好已經(jīng)具有特定功能的數(shù)據(jù),需要把目標文件整體內(nèi)容映射到內(nèi)存中,并且使用映射的文件句柄對目標進行文件讀寫操作。常用的函數(shù)包括CreateFile、MapViewOfFile、CreateFileMapping等。

        (3)向目標PE文件寫入病毒功能代碼

        向目標PE文件寫入內(nèi)容,PE病毒的目的是通過向PE格式文件寫入特定功能的數(shù)據(jù),達到操作系統(tǒng)執(zhí)行PE病毒制造者想要的行為。常用的函數(shù)包括fopen、fread、fputc、fseek。

        (4)修改目標PE文件入口點

        為了確保病毒先于PE文件的運行而執(zhí)行,向目標PE格式文件寫入特定數(shù)據(jù)后,PE病毒需要修改目標PE文件的入口點,如圖1所示,使該入口點指向病毒的功能代碼,確保程序被加載進內(nèi)存后首先執(zhí)行病毒程序。

        (5)返回目標PE文件原始入口

        為了使PE病毒能夠長久的生存,PE病毒必須要最大程度的實現(xiàn)在用戶毫不知情的情況下完成其傳播與感染操作,因此,一般的病毒代碼都會在先于宿主PE文件執(zhí)行完畢后,通過跳轉(zhuǎn)指令返回HOST程序原入口點執(zhí)行,如圖1所示,以完成宿主PE文件原有的功能,使用戶察覺不到病毒的運行。

        2.3PE病毒其他行為特征

        PE病毒為了能更容易的獲得運行權(quán),更好地保護自己,一般還會具有修改注冊表、修改自啟動文件等行為,以實現(xiàn)開機自啟動、禁用注冊表、禁用殺毒軟件等功能。

        例如,通過在注冊表中的以下位置添加新項來實現(xiàn)一些功能:

        "Software\\Microsoft\\Windows\\CurrentVersion\endprint

        Run"

        "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"

        同時,病毒會修改系統(tǒng)的開機配置文件來實現(xiàn)開機自啟動,而這些行為會存在差異,可通過輔助使用注冊表監(jiān)控與文件監(jiān)控等行為監(jiān)控工具進行檢測。

        3基于行為特征的PE病毒檢測

        PE病毒行為檢測方法主要是以病毒行為特征作為判定基礎(chǔ),對目標文件使用字符串匹配的方法來確定是否具有可疑行為,其檢測流程如圖2所示。

        3.1確定PE病毒行為字符串特征庫

        為了準確判斷目標PE文件是否存在可疑行為,在詳細分析PE病毒行為特征的基礎(chǔ)上,獲取其行為特征對應(yīng)的十六進制字符串構(gòu)造字符串特征庫,作為檢測PE病毒的依據(jù)。

        (1)病毒中變量的重定位

        在PE病毒中最常用的是調(diào)用call指令來得到一個參考變量在內(nèi)存中的真實地址,然后,將該地址與參考變量和重定位變量的偏移地址做運算來得到重定位變量的內(nèi)存地址。其主要的匯編指令與對應(yīng)的十六進制碼如表1所示。

        (2) 獲取系統(tǒng)內(nèi)存中Kernel32.dll基地址

        病毒在使用CreateProcess函數(shù)完成裝載應(yīng)用程序后,系統(tǒng)會先將一個返回地址壓入到堆棧頂端,而這個返回地址恰好在Kernel32.dll中,利用這個原理病毒順著這個返回地址按64KB大小向低地址搜索,直到找到Kernel32模塊的基地址為止。

        (3)搜索磁盤中的目標PE文件

        常見的PE病毒會遍歷磁盤中的全部分區(qū)進行目標PE文件的搜索,同時,對分區(qū)中的每一個目錄進行遞歸查找PE格式的文件。使用FindFile函數(shù)查找指定路徑,對當前路徑使用FindNextFile函數(shù)獲得下一個文件句柄后,IsDirectory函數(shù)判斷文件是否為目錄,是目錄則用GetFilePath得到文件路徑再遞歸調(diào)用查找函數(shù),否則,F(xiàn)ind(".exe")判斷文件的后綴名是否為.exe,而這些基本行為對應(yīng)的十六進制字符串如表3所示。

        (4)將目標PE文件映射進內(nèi)存

        為了獲取文件映射句柄對目標文件進行讀寫操作,需首先將目標PE文件映射到系統(tǒng)內(nèi)存空間,其基本行為對應(yīng)的十六進制字符串如表4所示。

        (5)向目標PE文件寫入病毒功能代碼

        首先采用fopen函數(shù)以讀寫或是只讀的方式打開目標文件,用fseek函數(shù)定位打開文件的指針,fread函數(shù)和fputc函數(shù)對文件進行讀寫操作。

        (6)修改PE文件入口點并返回HOST程序原入口點。

        病毒將目標文件映射到內(nèi)存或直接以讀寫方式打開后,獲取目標文件的程序入口點,保存原入口點并寫入新入口點,使得病毒代碼執(zhí)行完成后可以返回原入口點。

        3.2獲取可疑文件各個節(jié)十六進制串

        通過以下幾個步驟實現(xiàn)對可疑PE文件中基本信息和節(jié)信息的讀取。

        (1) 獲取可疑文件句柄

        通過API函數(shù)CreateFile 創(chuàng)建打開可疑文件對象,并返回一個用來訪問該對象的句柄。

        (2) 將可疑PE文件映射到內(nèi)存

        通過CreateFileMapping函數(shù)將可疑文件映射到內(nèi)存,并且返回一個內(nèi)存映射文件句柄,通過MapViewOfFile函數(shù)把內(nèi)存映射文件句柄指向的可疑文件映射到當前應(yīng)用程序的地址空間,并返回映射視圖文件的開始地址值,準備讀取可疑文件文件頭與文件的節(jié)的信息。為了準確的讀出PE文件的內(nèi)容信息,還需要對PE文件結(jié)構(gòu)以及PE文件的內(nèi)存映射做出分析。

        (3)讀取PE文件頭的IMAGE_FILE_HEADER 結(jié)構(gòu),如圖3所示。

        (4)讀取PE文件頭的IMAGE_ OPTIONAL _HEADER 結(jié)構(gòu),如圖4所示。

        (5)獲取節(jié)表中代碼節(jié)的特征值、起始位置、長度等信息,如圖5所示。

        (6)讀取PE文件節(jié)的信息

        定義一個PIMAGE_SECTION_HEADER結(jié)構(gòu)實例,將其指向可疑PE文件的節(jié)表中每一個節(jié)表項;判斷當前節(jié)表的Characteristics特征是否可讀且包含代碼(代碼節(jié)),若不是則繼續(xù)讀下一個節(jié)表項,若是則把當前文件操作指針通過SetFilePointer設(shè)置到代碼節(jié)的開始位置,再通過ReadFile 函數(shù)把代碼節(jié)信息保存到已經(jīng)申明好的BYTE* buffer=new BYTE[filesize+1] 動態(tài)字節(jié)數(shù)組中。

        3.3PE病毒行為字符串匹配

        獲取代碼節(jié)數(shù)據(jù)后,根據(jù)上文中的PE病毒行為特征采用字符串匹配的方法查找PE病毒行為特征并報告該文件的危險等級。

        在字符串匹配方面,若直接進行匹配將會降低匹配效率、浪費計算資源,因此將匹配操作按照E8和FF開始字節(jié)進行分類劃分,由起始字節(jié)開始匹配,如圖6所示。

        4結(jié)束語

        文中首先分析了PE病毒具有的關(guān)鍵行為特征、基本行為特征以及為了保護病毒自身而具有的其他一些行為特征,并在此基礎(chǔ)上給出了這些行為特征的實現(xiàn)函數(shù)及其對應(yīng)的匯編代碼、十六進制字符串,并以此為啟發(fā)式檢測未知病毒的依據(jù),設(shè)計并詳細說明了其實現(xiàn)過程。

        下一步將更深入研究PE病毒的行為特征,并對不同的行為特征進行權(quán)重設(shè)計,實現(xiàn)對不同行為組合的PE病毒可疑程度的準確判斷。

        參考文獻

        [1] 傅建明,彭國軍,張煥國.計算機病毒分析與對抗(第二版).武漢大學(xué)出版社,2009.

        [2] 王成,龐建民,趙榮彩,王強. 基于可疑行為識別的PE病毒檢測方法[J]. 計算機工程,2009,15(5):132-134.

        [3] 劉帥. Win32PE廣義病毒檢測的設(shè)計與實現(xiàn). 哈爾濱工程大學(xué)碩士學(xué)位論文, 2011.

        [4] 何志永. 一種對Windows中PE文件進行啟發(fā)式病毒掃描的算法.科技通報,2013,147-150.

        [5] 李曉黎. Windows系統(tǒng)編程. 人民郵電出版社, 2012 .

        [6] 范吳平. Win32 PE文件病毒的檢測方法研究. 電子科技大學(xué)碩士論文, 2012.

        基金項目:

        2013年中國民航大學(xué)教育教學(xué)改革研究課題(項目編號CAUC-ETRN-2013-24)。

        2013年大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項目(項目編號IECAUC13028)。

        作者簡介:

        王靜(1980-),女, 博士,中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院,講師;主要研究方向和關(guān)注領(lǐng)域:信息安全。

        梁大釗,中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院,本科生。

        吳永順,中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院,本科生。

        饒麗萍,中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院,本科生。

        黃曉生,中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院,本科生。endprint

        Run"

        "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"

        同時,病毒會修改系統(tǒng)的開機配置文件來實現(xiàn)開機自啟動,而這些行為會存在差異,可通過輔助使用注冊表監(jiān)控與文件監(jiān)控等行為監(jiān)控工具進行檢測。

        3基于行為特征的PE病毒檢測

        PE病毒行為檢測方法主要是以病毒行為特征作為判定基礎(chǔ),對目標文件使用字符串匹配的方法來確定是否具有可疑行為,其檢測流程如圖2所示。

        3.1確定PE病毒行為字符串特征庫

        為了準確判斷目標PE文件是否存在可疑行為,在詳細分析PE病毒行為特征的基礎(chǔ)上,獲取其行為特征對應(yīng)的十六進制字符串構(gòu)造字符串特征庫,作為檢測PE病毒的依據(jù)。

        (1)病毒中變量的重定位

        在PE病毒中最常用的是調(diào)用call指令來得到一個參考變量在內(nèi)存中的真實地址,然后,將該地址與參考變量和重定位變量的偏移地址做運算來得到重定位變量的內(nèi)存地址。其主要的匯編指令與對應(yīng)的十六進制碼如表1所示。

        (2) 獲取系統(tǒng)內(nèi)存中Kernel32.dll基地址

        病毒在使用CreateProcess函數(shù)完成裝載應(yīng)用程序后,系統(tǒng)會先將一個返回地址壓入到堆棧頂端,而這個返回地址恰好在Kernel32.dll中,利用這個原理病毒順著這個返回地址按64KB大小向低地址搜索,直到找到Kernel32模塊的基地址為止。

        (3)搜索磁盤中的目標PE文件

        常見的PE病毒會遍歷磁盤中的全部分區(qū)進行目標PE文件的搜索,同時,對分區(qū)中的每一個目錄進行遞歸查找PE格式的文件。使用FindFile函數(shù)查找指定路徑,對當前路徑使用FindNextFile函數(shù)獲得下一個文件句柄后,IsDirectory函數(shù)判斷文件是否為目錄,是目錄則用GetFilePath得到文件路徑再遞歸調(diào)用查找函數(shù),否則,F(xiàn)ind(".exe")判斷文件的后綴名是否為.exe,而這些基本行為對應(yīng)的十六進制字符串如表3所示。

        (4)將目標PE文件映射進內(nèi)存

        為了獲取文件映射句柄對目標文件進行讀寫操作,需首先將目標PE文件映射到系統(tǒng)內(nèi)存空間,其基本行為對應(yīng)的十六進制字符串如表4所示。

        (5)向目標PE文件寫入病毒功能代碼

        首先采用fopen函數(shù)以讀寫或是只讀的方式打開目標文件,用fseek函數(shù)定位打開文件的指針,fread函數(shù)和fputc函數(shù)對文件進行讀寫操作。

        (6)修改PE文件入口點并返回HOST程序原入口點。

        病毒將目標文件映射到內(nèi)存或直接以讀寫方式打開后,獲取目標文件的程序入口點,保存原入口點并寫入新入口點,使得病毒代碼執(zhí)行完成后可以返回原入口點。

        3.2獲取可疑文件各個節(jié)十六進制串

        通過以下幾個步驟實現(xiàn)對可疑PE文件中基本信息和節(jié)信息的讀取。

        (1) 獲取可疑文件句柄

        通過API函數(shù)CreateFile 創(chuàng)建打開可疑文件對象,并返回一個用來訪問該對象的句柄。

        (2) 將可疑PE文件映射到內(nèi)存

        通過CreateFileMapping函數(shù)將可疑文件映射到內(nèi)存,并且返回一個內(nèi)存映射文件句柄,通過MapViewOfFile函數(shù)把內(nèi)存映射文件句柄指向的可疑文件映射到當前應(yīng)用程序的地址空間,并返回映射視圖文件的開始地址值,準備讀取可疑文件文件頭與文件的節(jié)的信息。為了準確的讀出PE文件的內(nèi)容信息,還需要對PE文件結(jié)構(gòu)以及PE文件的內(nèi)存映射做出分析。

        (3)讀取PE文件頭的IMAGE_FILE_HEADER 結(jié)構(gòu),如圖3所示。

        (4)讀取PE文件頭的IMAGE_ OPTIONAL _HEADER 結(jié)構(gòu),如圖4所示。

        (5)獲取節(jié)表中代碼節(jié)的特征值、起始位置、長度等信息,如圖5所示。

        (6)讀取PE文件節(jié)的信息

        定義一個PIMAGE_SECTION_HEADER結(jié)構(gòu)實例,將其指向可疑PE文件的節(jié)表中每一個節(jié)表項;判斷當前節(jié)表的Characteristics特征是否可讀且包含代碼(代碼節(jié)),若不是則繼續(xù)讀下一個節(jié)表項,若是則把當前文件操作指針通過SetFilePointer設(shè)置到代碼節(jié)的開始位置,再通過ReadFile 函數(shù)把代碼節(jié)信息保存到已經(jīng)申明好的BYTE* buffer=new BYTE[filesize+1] 動態(tài)字節(jié)數(shù)組中。

        3.3PE病毒行為字符串匹配

        獲取代碼節(jié)數(shù)據(jù)后,根據(jù)上文中的PE病毒行為特征采用字符串匹配的方法查找PE病毒行為特征并報告該文件的危險等級。

        在字符串匹配方面,若直接進行匹配將會降低匹配效率、浪費計算資源,因此將匹配操作按照E8和FF開始字節(jié)進行分類劃分,由起始字節(jié)開始匹配,如圖6所示。

        4結(jié)束語

        文中首先分析了PE病毒具有的關(guān)鍵行為特征、基本行為特征以及為了保護病毒自身而具有的其他一些行為特征,并在此基礎(chǔ)上給出了這些行為特征的實現(xiàn)函數(shù)及其對應(yīng)的匯編代碼、十六進制字符串,并以此為啟發(fā)式檢測未知病毒的依據(jù),設(shè)計并詳細說明了其實現(xiàn)過程。

        下一步將更深入研究PE病毒的行為特征,并對不同的行為特征進行權(quán)重設(shè)計,實現(xiàn)對不同行為組合的PE病毒可疑程度的準確判斷。

        參考文獻

        [1] 傅建明,彭國軍,張煥國.計算機病毒分析與對抗(第二版).武漢大學(xué)出版社,2009.

        [2] 王成,龐建民,趙榮彩,王強. 基于可疑行為識別的PE病毒檢測方法[J]. 計算機工程,2009,15(5):132-134.

        [3] 劉帥. Win32PE廣義病毒檢測的設(shè)計與實現(xiàn). 哈爾濱工程大學(xué)碩士學(xué)位論文, 2011.

        [4] 何志永. 一種對Windows中PE文件進行啟發(fā)式病毒掃描的算法.科技通報,2013,147-150.

        [5] 李曉黎. Windows系統(tǒng)編程. 人民郵電出版社, 2012 .

        [6] 范吳平. Win32 PE文件病毒的檢測方法研究. 電子科技大學(xué)碩士論文, 2012.

        基金項目:

        2013年中國民航大學(xué)教育教學(xué)改革研究課題(項目編號CAUC-ETRN-2013-24)。

        2013年大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項目(項目編號IECAUC13028)。

        作者簡介:

        王靜(1980-),女, 博士,中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院,講師;主要研究方向和關(guān)注領(lǐng)域:信息安全。

        梁大釗,中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院,本科生。

        吳永順,中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院,本科生。

        饒麗萍,中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院,本科生。

        黃曉生,中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院,本科生。endprint

        Run"

        "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"

        同時,病毒會修改系統(tǒng)的開機配置文件來實現(xiàn)開機自啟動,而這些行為會存在差異,可通過輔助使用注冊表監(jiān)控與文件監(jiān)控等行為監(jiān)控工具進行檢測。

        3基于行為特征的PE病毒檢測

        PE病毒行為檢測方法主要是以病毒行為特征作為判定基礎(chǔ),對目標文件使用字符串匹配的方法來確定是否具有可疑行為,其檢測流程如圖2所示。

        3.1確定PE病毒行為字符串特征庫

        為了準確判斷目標PE文件是否存在可疑行為,在詳細分析PE病毒行為特征的基礎(chǔ)上,獲取其行為特征對應(yīng)的十六進制字符串構(gòu)造字符串特征庫,作為檢測PE病毒的依據(jù)。

        (1)病毒中變量的重定位

        在PE病毒中最常用的是調(diào)用call指令來得到一個參考變量在內(nèi)存中的真實地址,然后,將該地址與參考變量和重定位變量的偏移地址做運算來得到重定位變量的內(nèi)存地址。其主要的匯編指令與對應(yīng)的十六進制碼如表1所示。

        (2) 獲取系統(tǒng)內(nèi)存中Kernel32.dll基地址

        病毒在使用CreateProcess函數(shù)完成裝載應(yīng)用程序后,系統(tǒng)會先將一個返回地址壓入到堆棧頂端,而這個返回地址恰好在Kernel32.dll中,利用這個原理病毒順著這個返回地址按64KB大小向低地址搜索,直到找到Kernel32模塊的基地址為止。

        (3)搜索磁盤中的目標PE文件

        常見的PE病毒會遍歷磁盤中的全部分區(qū)進行目標PE文件的搜索,同時,對分區(qū)中的每一個目錄進行遞歸查找PE格式的文件。使用FindFile函數(shù)查找指定路徑,對當前路徑使用FindNextFile函數(shù)獲得下一個文件句柄后,IsDirectory函數(shù)判斷文件是否為目錄,是目錄則用GetFilePath得到文件路徑再遞歸調(diào)用查找函數(shù),否則,F(xiàn)ind(".exe")判斷文件的后綴名是否為.exe,而這些基本行為對應(yīng)的十六進制字符串如表3所示。

        (4)將目標PE文件映射進內(nèi)存

        為了獲取文件映射句柄對目標文件進行讀寫操作,需首先將目標PE文件映射到系統(tǒng)內(nèi)存空間,其基本行為對應(yīng)的十六進制字符串如表4所示。

        (5)向目標PE文件寫入病毒功能代碼

        首先采用fopen函數(shù)以讀寫或是只讀的方式打開目標文件,用fseek函數(shù)定位打開文件的指針,fread函數(shù)和fputc函數(shù)對文件進行讀寫操作。

        (6)修改PE文件入口點并返回HOST程序原入口點。

        病毒將目標文件映射到內(nèi)存或直接以讀寫方式打開后,獲取目標文件的程序入口點,保存原入口點并寫入新入口點,使得病毒代碼執(zhí)行完成后可以返回原入口點。

        3.2獲取可疑文件各個節(jié)十六進制串

        通過以下幾個步驟實現(xiàn)對可疑PE文件中基本信息和節(jié)信息的讀取。

        (1) 獲取可疑文件句柄

        通過API函數(shù)CreateFile 創(chuàng)建打開可疑文件對象,并返回一個用來訪問該對象的句柄。

        (2) 將可疑PE文件映射到內(nèi)存

        通過CreateFileMapping函數(shù)將可疑文件映射到內(nèi)存,并且返回一個內(nèi)存映射文件句柄,通過MapViewOfFile函數(shù)把內(nèi)存映射文件句柄指向的可疑文件映射到當前應(yīng)用程序的地址空間,并返回映射視圖文件的開始地址值,準備讀取可疑文件文件頭與文件的節(jié)的信息。為了準確的讀出PE文件的內(nèi)容信息,還需要對PE文件結(jié)構(gòu)以及PE文件的內(nèi)存映射做出分析。

        (3)讀取PE文件頭的IMAGE_FILE_HEADER 結(jié)構(gòu),如圖3所示。

        (4)讀取PE文件頭的IMAGE_ OPTIONAL _HEADER 結(jié)構(gòu),如圖4所示。

        (5)獲取節(jié)表中代碼節(jié)的特征值、起始位置、長度等信息,如圖5所示。

        (6)讀取PE文件節(jié)的信息

        定義一個PIMAGE_SECTION_HEADER結(jié)構(gòu)實例,將其指向可疑PE文件的節(jié)表中每一個節(jié)表項;判斷當前節(jié)表的Characteristics特征是否可讀且包含代碼(代碼節(jié)),若不是則繼續(xù)讀下一個節(jié)表項,若是則把當前文件操作指針通過SetFilePointer設(shè)置到代碼節(jié)的開始位置,再通過ReadFile 函數(shù)把代碼節(jié)信息保存到已經(jīng)申明好的BYTE* buffer=new BYTE[filesize+1] 動態(tài)字節(jié)數(shù)組中。

        3.3PE病毒行為字符串匹配

        獲取代碼節(jié)數(shù)據(jù)后,根據(jù)上文中的PE病毒行為特征采用字符串匹配的方法查找PE病毒行為特征并報告該文件的危險等級。

        在字符串匹配方面,若直接進行匹配將會降低匹配效率、浪費計算資源,因此將匹配操作按照E8和FF開始字節(jié)進行分類劃分,由起始字節(jié)開始匹配,如圖6所示。

        4結(jié)束語

        文中首先分析了PE病毒具有的關(guān)鍵行為特征、基本行為特征以及為了保護病毒自身而具有的其他一些行為特征,并在此基礎(chǔ)上給出了這些行為特征的實現(xiàn)函數(shù)及其對應(yīng)的匯編代碼、十六進制字符串,并以此為啟發(fā)式檢測未知病毒的依據(jù),設(shè)計并詳細說明了其實現(xiàn)過程。

        下一步將更深入研究PE病毒的行為特征,并對不同的行為特征進行權(quán)重設(shè)計,實現(xiàn)對不同行為組合的PE病毒可疑程度的準確判斷。

        參考文獻

        [1] 傅建明,彭國軍,張煥國.計算機病毒分析與對抗(第二版).武漢大學(xué)出版社,2009.

        [2] 王成,龐建民,趙榮彩,王強. 基于可疑行為識別的PE病毒檢測方法[J]. 計算機工程,2009,15(5):132-134.

        [3] 劉帥. Win32PE廣義病毒檢測的設(shè)計與實現(xiàn). 哈爾濱工程大學(xué)碩士學(xué)位論文, 2011.

        [4] 何志永. 一種對Windows中PE文件進行啟發(fā)式病毒掃描的算法.科技通報,2013,147-150.

        [5] 李曉黎. Windows系統(tǒng)編程. 人民郵電出版社, 2012 .

        [6] 范吳平. Win32 PE文件病毒的檢測方法研究. 電子科技大學(xué)碩士論文, 2012.

        基金項目:

        2013年中國民航大學(xué)教育教學(xué)改革研究課題(項目編號CAUC-ETRN-2013-24)。

        2013年大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項目(項目編號IECAUC13028)。

        作者簡介:

        王靜(1980-),女, 博士,中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院,講師;主要研究方向和關(guān)注領(lǐng)域:信息安全。

        梁大釗,中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院,本科生。

        吳永順,中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院,本科生。

        饒麗萍,中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院,本科生。

        黃曉生,中國民航大學(xué)計算機科學(xué)與技術(shù)學(xué)院,本科生。endprint

        猜你喜歡
        行為分析病毒檢測
        2021下半年加州鱸病毒檢測總結(jié)與建議
        基于WinPcap的校園網(wǎng)ARP病毒檢測防御系統(tǒng)設(shè)計與實現(xiàn)
        Genetop馬鈴薯病毒試劑盒在馬鈴薯病毒檢測上的應(yīng)用綜述
        基于K?均值與AGNES聚類算法的校園網(wǎng)行為分析系統(tǒng)研究
        基于北斗衛(wèi)星導(dǎo)航的罪犯行為分析方法
        物理教師課堂教學(xué)板書與媒體呈現(xiàn)行為的分析與策略
        GeXP多重RT-PCR技術(shù)在呼吸道病毒檢測中的應(yīng)用
        基于行為分析的木馬檢測系統(tǒng)設(shè)計與實現(xiàn)
        金融經(jīng)濟中的金融套利行為分析及若干研究
        公開課與常態(tài)課學(xué)生學(xué)習(xí)心理和行為的表現(xiàn)分析
        考試周刊(2016年60期)2016-08-23 17:14:23
        中文字幕一区二区人妻性色av| 国产成年无码久久久免费| 无码中文字幕日韩专区| 丰满熟妇乱又伦精品| 久久久久99精品成人片| 欧美老肥妇做爰bbww| 中国农村妇女hdxxxx| 99国内精品久久久久久久| а天堂中文在线官网| 国产一卡2卡3卡四卡国色天香 | 日本一区二区三区激情视频| 亚洲色欲色欲大片WWW无码| 国产aⅴ丝袜旗袍无码麻豆| 成年人视频在线播放视频| 国产精品国产三级国产一地| 日韩中文字幕一区二十| 国产精品视频白浆免费看| 国产韩国一区二区三区| 国产在线一区二区av| 公厕偷拍一区二区三区四区五区| 亚洲一区二区二区视频| 小雪好紧好滑好湿好爽视频| 最近在线更新8中文字幕免费| 欧洲人妻丰满av无码久久不卡| 久久久久久久性潮| 国产精品一区二区av片| 久久亚洲AV无码一区二区综合 | 欧洲美女熟乱av| 亚洲综合无码无在线观看| 国产精品系列亚洲第一| 亚洲精品中文字幕乱码二区 | 亚洲一级无码片一区二区三区| 亚洲av乱码专区国产乱码| 伊人狼人影院在线视频| 日本免费大片一区二区| 欧美黑人又大又粗xxxxx| 人妻少妇精品专区性色av| 亚洲色大成网站www在线观看| 精品久久杨幂国产杨幂| 国产又色又爽的视频在线观看91| 色和尚色视频在线看网站|