本發明涉及計算機網絡安全領域,特別涉及一種動態提取可執行文件內存映像的方法及系統。
背景技術:
隨著計算機技術的發展,惡意代碼與反病毒程序之間的對抗逐漸升級,惡意代碼利用越來越多的手段隱藏自身,通過加密變形等手段逃避反病毒程序的查殺, 使得同樣一個惡意代碼經過變換,在最終二進制層面可以獲得海量的不同形勢,導致反病毒程序通過靜態特征碼檢測的手段遇到極大的挑戰。為了對抗這種加密變形,防病毒程序可以采用一種延遲檢測的手段,即等待惡意代碼在內存中加載完成,將原始二進制代碼完全解密釋放到內存種,再從內存中將惡意代碼的映像文件提取出來進行檢測。但是,很多惡意代碼使用了用后刪除這樣的手段,即將變換后代碼釋放到內存使用后便將其釋放掉,這樣傳統的提取內存映像的方法就失去了作用。
同時,一部分惡意代碼并不將變換后的惡意代碼釋放到可執行文件的內存空間內,而是將代碼釋放到棧空間或者后期分配的堆空間(例如使用堆噴射或棧噴射技術的shellcode)。那么傳統的方法由于只提取可執行文件本身而無法獲取目標進程動態分配的內存空間,就無法對這些動態分配出來的內存地址空間里面的惡意代碼進行檢測。
技術實現要素:
本發明提出一種動態提取可執行文件內存映像的方法及系統,利用一種隨程序運行軌跡,動態提取可執行文件內存映像的方法來解決解密變形后的惡意代碼釋放到動態分配的內存空間來躲避反病毒軟件通過提取可執行文件內存映像來進行查殺的問題。
一種動態提取可執行文件內存映像的方法,包括:
利用虛擬機加載目標可執行文件;
根據預設間隔頻率定時提取目標可執行文件的內存映像;
對提取出來的內存映像進行消重;
將消重后的所有內存映像保存并提交檢測程序檢測。
所述的方法中,所述預設間隔頻率包括預設執行步數間隔或預設時間間隔。
所述的方法中,所述目標可執行文件的內存映像包括:目標可執行文件、進程的棧內存及動態分配的堆內存。
所述的方法中,對提取出來的內存映像進行消重具體為:將提取出來的內存映像計算哈希,刪除哈希相同的內存映像。
一種動態提取可執行文件內存映像的系統,包括:
目標加載模塊,用于利用虛擬機加載目標可執行文件;
內存映像提取模塊,用于根據預設間隔頻率定時提取目標可執行文件的內存映像;
消重模塊,用于對提取出來的內存映像進行消重;
存儲模塊,用于將消重后的所有內存映像保存并提交檢測程序檢測。
所述的系統中,所述預設間隔頻率包括預設執行步數間隔或預設時間間隔。
所述的系統中,所述目標可執行文件的內存映像包括:目標可執行文件、進程的棧內存及動態分配的堆內存。
所述的系統中,對提取出來的內存映像進行消重具體為:將提取出來的內存映像計算哈希,刪除哈希相同的內存映像。
本發明的優勢在于不會遺漏可執行文件本身內存映像之外的惡意代碼,解決了惡意代碼按需釋放真實惡意代碼躲避查殺的問題,并且通過哈希去重的方法避免了大量重復內存片段的出現,節省了資源消耗。
附圖說明
為了更清楚地說明本發明或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明中記載的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明一種動態提取可執行文件內存映像的方法流程圖;
圖2為本發明一種動態提取可執行文件內存映像的系統結構示意圖。
具體實施方式
為了使本技術領域的人員更好地理解本發明實施例中的技術方案,并使本發明的上述目的、特征和優點能夠更加明顯易懂,下面結合附圖對本發明中技術方案作進一步詳細的說明。
本發明提出一種動態提取可執行文件內存映像的方法及系統,利用一種隨程序運行軌跡,動態提取可執行文件內存映像的方法來解決解密變形后的惡意代碼釋放到動態分配的內存空間來躲避反病毒軟件通過提取可執行文件內存映像來進行查殺的問題。
一種動態提取可執行文件內存映像的方法,如圖1所示,包括:
S101:利用虛擬機加載目標可執行文件;所述虛擬機可以為VMWare、VirtualBox等;
S102:從程序的入口點開始,根據預設間隔頻率定時提取目標可執行文件的內存映像;
S103:對提取出來的內存映像進行消重;
S104:將消重后的所有內存映像保存并提交檢測程序檢測。
所述的方法中,所述預設間隔頻率包括預設執行步數間隔或預設時間間隔。
所述的方法中,所述目標可執行文件的內存映像包括:目標可執行文件、進程的棧內存及動態分配的堆內存。
所述的方法中,對提取出來的內存映像進行消重具體為:將提取出來的內存映像計算哈希,刪除哈希相同的內存映像。
本發明還提出一種動態提取可執行文件內存映像的系統,如圖2所示,包括:
目標加載模塊201,用于利用虛擬機加載目標可執行文件;
內存映像提取模塊202,用于根據預設間隔頻率定時提取目標可執行文件的內存映像;
消重模塊203,用于對提取出來的內存映像進行消重;
存儲模塊204,用于將消重后的所有內存映像保存并提交檢測程序檢測。
所述的系統中,所述預設間隔頻率包括預設執行步數間隔或預設時間間隔。
所述的系統中,所述目標可執行文件的內存映像包括:目標可執行文件、進程的棧內存及動態分配的堆內存。
所述的系統中,對提取出來的內存映像進行消重具體為:將提取出來的內存映像計算哈希,刪除哈希相同的內存映像。
本發明的優勢在于不會遺漏可執行文件本身內存映像之外的惡意代碼,解決了惡意代碼按需釋放真實惡意代碼躲避查殺的問題,并且通過哈希去重的方法避免了大量重復內存片段的出現,節省了資源消耗。
雖然通過實施例描繪了本發明,本領域普通技術人員知道,本發明有許多變形和變化而不脫離本發明的精神,希望所附的權利要求包括這些變形和變化而不脫離本發明的精神。