[發(fā)明專利]一種應用程序加殼的方法在審
| 申請?zhí)枺?/td> | 202010528419.X | 申請日: | 2020-06-11 |
| 公開(公告)號: | CN112347490A | 公開(公告)日: | 2021-02-09 |
| 發(fā)明(設計)人: | 吳建亮;胡鵬;張振林 | 申請(專利權(quán))人: | 廣州錦行網(wǎng)絡科技有限公司 |
| 主分類號: | G06F21/60 | 分類號: | G06F21/60;G06F21/14 |
| 代理公司: | 東莞市凱粵智華專利商標代理事務所(普通合伙) 44698 | 代理人: | 羅麗 |
| 地址: | 510000 廣東省廣州市天河區(qū)*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 應用程序 方法 | ||
本發(fā)明公開一種應用程序加殼的方法,先把可執(zhí)行文件拷貝進內(nèi)存,并拆分區(qū)段提取資源表,修改PE頭,把其它區(qū)段整合成一個區(qū)段放在一起然后加密,再添加三個區(qū)段A、B、C,后兩個用于存放加殼的代碼并修復它們的重定位表,第一個用于存放用于代碼檢查模塊;第二個用于修復被加殼程序的運行環(huán)境;第三個用于解壓各區(qū)段,把A區(qū)段的數(shù)據(jù)整理成dll文件,并加載。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其是指一種應用程序加殼的方法。
背景技術(shù)
加殼,是一種通過一系列數(shù)學運算,將可執(zhí)行程序文件或動態(tài)鏈接庫文件的編碼進行改變,以達到縮小文件體積或加密程序編碼的目的。現(xiàn)有的加殼產(chǎn)品有Upx、ASpack之類的壓縮殼,例如專利CN201110437932.9、CN201310648196.0之類的加密殼。
然而,Upx、ASpack之類的壓縮殼不能防止ida靜態(tài)分析,而專利CN201110437932.9、CN201310648196.0公開的加密殼沒有壓縮代碼,加殼后文件體積偏大。因此有必要研究一種方案以解決上述問題。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明針對現(xiàn)有技術(shù)存在之缺失,其主要目的是提供一種應用程序加殼的方法,其能夠防止靜態(tài)分析和動態(tài)分析,并且盡可能減少文件體積。
為實現(xiàn)上述目的,本發(fā)明采用如下之技術(shù)方案:
一種應用程序加殼的方法,先把可執(zhí)行文件拷貝進內(nèi)存,并拆分區(qū)段提取資源表,修改PE頭,把其它區(qū)段整合成一個區(qū)段放在一起然后加密,再添加三個區(qū)段A、B、C,后兩個用于存放加殼的代碼并修復它們的重定位表,第一個用于存放用于代碼檢查模塊;加密導入表,加密函數(shù)名成表,函數(shù)地址表,將它們填入函數(shù)名稱的哈希值,將入口點指向C區(qū)段中的函數(shù)。
優(yōu)選的,所述區(qū)段B和C的代碼均是從準備好的dll文件中的區(qū)段拷貝而來,區(qū)段B主要是用來解密和修復目標文件,區(qū)段C主要是用來解壓目標文件。
優(yōu)選的,所述區(qū)段B的代碼流程主要分為以下幾步,每步運行時,解密下一步代碼:獲取關(guān)鍵函數(shù);將區(qū)段B中關(guān)鍵的代碼計算成哈希值,用于解密目標區(qū)段,然后拆分區(qū)段,并把資源表和它們整合到一起,以達到恢復成原始原始的內(nèi)存排布的樣子;按照目標文件的映射粒度來映射區(qū)段;解密導入表,加載導入表中的文件;加密函數(shù)地址表,將函數(shù)地址表指向一個新的結(jié)構(gòu);先是傳入模塊名稱的哈希值,再傳入函數(shù)名稱的哈希值,然后跳轉(zhuǎn)到函數(shù)地址計算函數(shù);修復TLS;檢查入口點的一部分代碼,跳轉(zhuǎn)到入口點。
優(yōu)選的,所述區(qū)段C的代碼主要流程是加載關(guān)鍵模塊,獲取所需要的函數(shù);創(chuàng)建線程清除硬件斷點,關(guān)閉日志;解壓其它的區(qū)段;全代碼檢查;申請堆空間,存放解密后的B區(qū)段代碼,并修復區(qū)段B的重定位表;解密區(qū)段A,手動將它映射進內(nèi)存,并在模塊鏈表中添加該模塊信息;進入解密后的區(qū)段B的起始函數(shù)。
本發(fā)明與現(xiàn)有技術(shù)相比具有明顯的優(yōu)點和有益效果,具體而言,由上述技術(shù)方案可知:
通過采用本發(fā)明方法,每步函數(shù)運行時,將自身計算成哈希值,解密下一步,防止ida靜態(tài)編譯,同時防止程序調(diào)試。加殼時先進行壓縮減少文件體積,運行后再自我解壓;手動加載導入表,并將自身區(qū)段里的dll文件手動加載進去,并加密函數(shù)名稱表,增加脫殼難度。
附圖說明
圖1是本發(fā)明之較佳實施例的流程示意圖;
圖2是本發(fā)明之較佳實施例中區(qū)段B的代碼流程示意圖。
具體實施方式
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廣州錦行網(wǎng)絡科技有限公司,未經(jīng)廣州錦行網(wǎng)絡科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010528419.X/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:存儲器裝置
- 下一篇:一種基于Linux系統(tǒng)的端口復用方法





