[發明專利]一種程序入口點OEP的確定方法及裝置有效
| 申請號: | 201210587608.X | 申請日: | 2012-12-28 |
| 公開(公告)號: | CN103064687A | 公開(公告)日: | 2013-04-24 |
| 發明(設計)人: | 陳錦;劉業欣 | 申請(專利權)人: | 北京神州綠盟信息安全科技股份有限公司;北京神州綠盟科技有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 郭紅麗 |
| 地址: | 100089 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 程序 入口 oep 確定 方法 裝置 | ||
技術領域
本發明涉及計算機技術領域,尤指一種程序入口點OEP的確定方法及裝置
背景技術
加殼是可執行程序資源壓縮的簡稱,是保護文件的常用手段,其原理是利用特殊的算法,對可執行程序里的資源進行壓縮、加密。加殼程序可以直接運行,但是不能獲取原始程序,要經過脫殼才可以獲取。脫殼的過程主要為三步:第一步,確定原始程序的入口點(Original?Entry?Point,OEP);第二步,修復導入表和重定位表;第三步,將內存中的原始程序寫入文件,更改程序的新入口地址為OEP,這一步通常稱為轉儲(Dump)。確定原始程序的OEP是非常關鍵的步驟。
目前,在確定原始程序的OEP時,通常會采用特征定位法,根據已知類型殼的特征來確定加殼程序對應的原始程序的OEP,現有的產品有針對具體殼的脫殼腳本或自動脫殼機等。這種方法在確定OEP時成功率很高,但是一旦已知類型殼升級可能導致特征定位失效,并且對于確定使用未知類型殼的加殼程序對應的原始程序的OEP不能使用。因此,現有的確定程序OEP方法并不能普遍適用于確定各種加殼程度對應的原始程序的OEP。
發明內容
本發明實施例提供一種程序入口點OEP的確定方法及裝置,用以解決現有的確定程序OEP的方法適用范圍有限的問題。
一種程序入口點OEP的確定方法,包括:
記錄加殼程序運行過程中產生的數據改寫信息,所述數據改寫信息包括數據改寫地址和數據改寫時間;
根據記錄的數據改寫信息確定所述加殼程序運行過程中進入后直到結束沒有離開的內存區域;
獲取記錄每條數據改寫信息后所述內存區域中每個內存地址的數據,并根據獲取的數據計算在對應的數據改寫信息中包括的數據改寫時間的所述內存區域的熵值;
獲取熵值開始大于等于設定閾值的數據改寫時間對應的數據改寫地址為所述加殼程序對應的原始程序的OEP。
一種程序入口點OEP的確定裝置,包括:
記錄單元,用于記錄加殼程序運行過程中產生的數據改寫信息,所述數據改寫信息包括數據改寫地址和數據改寫時間;
確定單元,用于根據記錄的數據改寫信息確定所述加殼程序運行過程中進入后直到結束沒有離開的內存區域;
計算單元,用于獲取記錄每條數據改寫信息后所述內存區域中每個內存地址的數據,并根據獲取的數據計算在對應的數據改寫信息中包括的數據改寫時間的所述內存區域的熵值;
獲取單元,用于獲取熵值開始大于等于設定閾值的數據改寫時間對應的數據改寫地址為所述加殼程序對應的原始程序的OEP。
本發明有益效果如下:
本發明實施例提供的程序入口點OEP的確定方法及裝置,通過記錄加殼程序運行過程中產生的數據改寫信息,所述數據改寫信息包括數據改寫地址和數據改寫時間;根據記錄的數據改寫信息確定所述加殼程序運行過程中進入后直到結束沒有離開的內存區域;獲取記錄每條數據改寫信息后所述內存區域中每個內存地址的數據,并根據獲取的數據計算在對應的數據改寫信息中包括的數據改寫時間的所述內存區域的熵值;獲取熵值開始大于等于設定閾值的數據改寫時間對應的數據改寫地址為所述加殼程序對應的原始程序的OEP。該方案可以適用于確定各種加殼程序對應的原始程序的OEP,方法簡單,效率高。
附圖說明
圖1為本發明實施例中程序入口點OEP的確定方法的流程圖;
圖2為本發明實施例中的可執行程序的結構示意圖;
圖3為本發明實施例中程序入口點OEP的確定裝置的結構示意圖。
具體實施方式
針對現有中確定OEP的方法適用范圍有限的問題,本發明實施例提供一種程序入口點OEP的確定方法,該方法的流程如圖1所示,執行步驟如下:
S10:記錄加殼程序運行過程中產生的數據改寫信息,數據改寫信息包括數據改寫地址和數據改寫時間。
可以使用虛擬機或者調試器等運行加殼程序,并記錄運行過程中產生的數據改寫信息。
S11:根據記錄的數據改寫信息確定加殼程序運行過程中進入后直到結束沒有離開的內存區域。
加殼程序運行的過程中,運行到OEP后,原始程序已還原,后面的流程都是執行原始程序的流程。假設原始程序運行在內存區域A中,那么當到達原始程序的OEP后,即進入內存區域A,直到加殼程序運行結束再也不會離開內存區域A,則時刻T進入內存區域A的那個地址,就是OEP。因此,可以根據記錄的數據改寫信息確定加殼程序運行過程中進入后直到結束沒有離開的內存區域。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京神州綠盟信息安全科技股份有限公司;北京神州綠盟科技有限公司,未經北京神州綠盟信息安全科技股份有限公司;北京神州綠盟科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210587608.X/2.html,轉載請聲明來源鉆瓜專利網。





