【技術實現步驟摘要】
本專利技術涉及計算機
,尤指一種基于加殼程序的輔助脫殼方法及裝置
技術介紹
加殼是可執行程序資源壓縮的簡稱,是保護文件的常用手段,其原理是利用特殊的算法,對可執行程序里的資源進行壓縮、加密。加殼程序可以直接運行,但是不能查看原始程序,要經過脫殼才可以查看。脫殼的過程主要為三步第一步,確定原始程序的入口點(Original Entry Point, OEP);第二步,修復導入表和重定位表;第三步,將內存中的原始程序寫入文件,更改程序的新入口地址為0ΕΡ,這一通常成為轉儲(Dump)。確定0ΕΡ、修復導入表和重定位表后,即可完成脫殼,得到原始程序,可見脫殼的關鍵就是確定0ΕΡ、修復導入表和重定位表。 隨著現代加密技術的飛速發展,有些殼的保護強度極高,目前只能依靠人工分析來脫殼,研究人員從頭到尾通過手工調試才能弄清殼的大體流程,進而定位0ΕΡ、導入表、重定位表的精確位置,通過人工分析脫殼的方式既浪費人力資源,效率還非常低,如果首先能對加殼程序進行輔助脫殼,大致定位出0ΕΡ、導入表、重定位表可能的位置范圍,然后研究人員再對確定出的位置范圍進行對手工調試,定位出0ΕΡ、導入表、重定位表的精確位置,則可以節省很多人力資源,并能提高效率。但是,目前沒有對加殼程序進行輔助脫殼的方法。
技術實現思路
本專利技術實施例提供一種基于加殼程序的輔助脫殼方法及裝置,用以實現對加殼程序進行輔助脫殼?!N基于加殼程序的輔助脫殼方法,包括在對所述加殼程序執行脫殼操作前,獲取運行所述加殼程序過程中產生的數據改寫信息,每條數據改寫信息包含至少兩類子信息;選取數據改寫信息中的至少兩類子信息 ...
【技術保護點】
一種基于加殼程序的輔助脫殼方法,其特征在于,包括:在對所述加殼程序執行脫殼操作前,獲取運行所述加殼程序過程中產生的數據改寫信息,每條數據改寫信息包含至少兩類子信息;選取數據改寫信息中的至少兩類子信息,根據所有數據改寫信息中選取的至少兩類子信息的數據構建第一輔助圖形;和/或,獲取運行所述加殼程序過程中產生的代碼流程信息,每條代碼流程信息包含至少兩類子信息;選取代碼流程信息中的至少兩類子信息,根據所有代碼流程信息中選取的至少兩類子信息的數據構建第二輔助圖形;根據所述第一輔助圖形和/或所述第二輔助圖形確定所述加殼程序對應的原始程序的重定位表和導入表的所在地址范圍。
【技術特征摘要】
1.一種基于加殼程序的輔助脫殼方法,其特征在于,包括 在對所述加殼程序執行脫殼操作前,獲取運行所述加殼程序過程中產生的數據改寫信息,每條數據改寫信息包含至少兩類子信息;選取數據改寫信息中的至少兩類子信息,根據所有數據改寫信息中選取的至少兩類子信息的數據構建第一輔助圖形;和/或, 獲取運行所述加殼程序過程中產生的代碼流程信息,每條代碼流程信息包含至少兩類子信息;選取代碼流程信息中的至少兩類子信息,根據所有代碼流程信息中選取的至少兩類子信息的數據構建第二輔助圖形; 根據所述第一輔助圖形和/或所述第二輔助圖形確定所述加殼程序對應的原始程序的重定位表和導入表的所在地址范圍。2.如權利要求1所述的方法,其特征在于,選取數據改寫信息中的至少兩類子信息,根據所有數據改寫信息中選取的至少兩類子信息的數據構建第一輔助圖形,具體包括 選取數據改寫信息中數據改寫時間和整個內存在所述數據改寫時間的數據兩類子信息; 獲取所有數據改寫信息中選取的數據改寫時間和整個內存在所述數據改寫時間兩類子信息的數據; 以數據改寫時間為橫軸、內存地址為縱軸建立動態坐標圖,將每一數據改寫時間對應的整個內存的數據構建一個圖,將得到的每張圖與對應的數據改寫時間關聯得到所述第一輔助圖形; 根據所述第一輔助圖形確定所述加殼程序對應的原始程序的重定位表和導入表的所在地址范圍,具體包括 拖動所述橫軸,獲取運行所述加殼程序過程中整個內存的數據變化,數據包含有函數或模塊字符串的內存地址范圍可以作為所述重定位表和導入表的所在地址范圍。3.如權利要求1所述的方法,其特征在于,還包括 根據所述第一輔助圖形和/或所述第二輔助圖形確定所述加殼程序對應的原始程序的入口點OEP的時間范圍。4.如權利要求3所述的方法,其特征在于,選取數據改寫信息中的至少兩類子信息,根據所有數據改寫信息中選取的至少兩類子信息的數據構建第一輔助圖形,具體包括 選取數據改寫信息中的數據改寫地址、數據改寫執行地址和數據改寫時間三類子信息; 獲取所有數據改寫信息中選取的數據改寫地址、數據改寫執行地址和數據改寫時間三類子信息的數據; 以數據改寫時間為橫軸、以內存地址為縱軸建立坐標系,將獲取的每條數據改寫信息的數據改寫地址和數據改寫執行地址的數據標注在所述坐標系中,得到所述第一輔助圖形; 根據所述第一輔助圖形確定所述加殼程序對應的原始程序的OEP的時間范圍,以及重定位表和導入表的所在地址范圍,具體包括 連接所述第一輔助圖形中表示數據改寫地址的點得到數據改寫曲線,以及連接所述第一輔助圖形中表示數據改寫執行地址的點得到數據改寫執行曲線; 若所述數據改寫執行曲線進入設定內存地址范圍,之后再未離開所述設定內存地址范圍,則確定所述數據改寫執行曲線進入所述設定內存地址范圍時對應的第一數據改寫時間與位于所述第一改寫時間之前且相鄰的第二數據改寫時間之間的時間范圍為所述加殼程序對應的原始程序的OEP的時間范圍,所述設定內存地址范圍中的數據在所述確定的OEP的時間范圍之前被改寫過; 在確定的OEP的時間范圍之前獲取的數據改寫信息中出現的內存地址范圍作為所述重定位表和所述導入表的所在地址范圍。5.如權利要求3所述的方法,其特征在于,選取數據改寫信息中的至少兩類子信息,根據所有數據改寫信息中選取的至少兩類子信息的數據構建第一輔助圖形,具體包括 選取數據改寫信息中全部子信息; 獲取所有數據改寫信息中選取全部子信息的數據,根據從每條數據改寫信息中獲取的全部子信息的數據計算記錄每條數據改寫信息后的內存熵值; 以數據改寫時間為橫軸、以內存熵值為縱軸建立坐標系,將計算得到的內存熵值標注在所述坐標系中,得到所述第一輔助圖形; 根據所述第一輔助圖形確定所述加殼程序對應的原始程序的OEP的時間范圍,以及重定位表和導入表的所在地址范圍,具體包括 連接所述第一輔助圖形中表示內存熵值的點得到內存熵值曲線; 確定內存熵值逐漸增加直到穩定的時間范圍是所述加殼程序對應的原始程序的OEP的時間范圍; 在確定的OEP的時間范圍之前獲取的每條數據改寫信息中出現的內存地址范圍作為所述重定位表和所述導入表的所在地址范圍。6.如權利要求3所述的方法,其特征在于,選取代碼流程信息中的至少兩類子信息,根據所有代碼流程信息中選取的至少兩類子信息的數據構建第二輔助圖形,具體包括 選取所有數據改寫信息中代碼片段執行時間和代碼片段執行地址兩類子信息; 獲取所有代碼流程信息中選取的代碼片段執行時間和代碼片段執行地址兩類子信息的數據; 以代碼片段執行時間為橫軸、內存地址為縱軸建立坐標系,將獲取的每條代碼流程信息的代碼片段執行地址標注在所述坐標系中,得到所述第二輔助圖形; 根據所述第二輔助圖形確定所述加殼程序對應的原始程序的OEP的時間范圍,以及重定位表和導入表的所在地址范圍,具體包括 連接所述第二輔助圖形中表示代碼執行片段地址的點得到代碼執行地址曲線; 若所述代碼執行地址曲線進入設定內存地址范圍,之后再未離開所述設定內存地址范圍,則所述加殼程序從開始運行到所述代碼執行地址曲線進入所述設定內存地址范圍之前的時間范圍,為所述加殼程序對應的原始程序的OEP的時間范圍; 在確定的OEP的時間范圍之前獲取的每條數據改寫信息中出現的內存地址范圍作為所述重定位表和所述導入表的所在地址范圍。7.如權利要求3所述的方法,其特征在于,根據所述第一輔助圖形和所述第二輔助圖形確定所述加殼程序對應的原始程序的OEP的時間范圍,以及重定位表和導入表的所在地址范圍,具體包括 根...
【專利技術屬性】
技術研發人員:陳錦,劉業欣,
申請(專利權)人:北京神州綠盟信息安全科技股份有限公司,北京神州綠盟科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。