[發(fā)明專利]一種基于殼技術(shù)的軟件保護(hù)方法無(wú)效
| 申請(qǐng)?zhí)枺?/td> | 201310031524.2 | 申請(qǐng)日: | 2013-01-28 |
| 公開(kāi)(公告)號(hào): | CN103065069A | 公開(kāi)(公告)日: | 2013-04-24 |
| 發(fā)明(設(shè)計(jì))人: | 陳文宇;李文;劉貴松;歐睿杰;符明晟;袁野;朱建 | 申請(qǐng)(專利權(quán))人: | 電子科技大學(xué) |
| 主分類號(hào): | G06F21/10 | 分類號(hào): | G06F21/10 |
| 代理公司: | 成都華典專利事務(wù)所(普通合伙) 51223 | 代理人: | 徐豐;楊保剛 |
| 地址: | 610000 四川省成*** | 國(guó)省代碼: | 四川;51 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 技術(shù) 軟件 保護(hù) 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及軟件加密技術(shù)領(lǐng)域,具體涉及一種基于殼技術(shù)的軟件保護(hù)方法。
背景技術(shù)
隨著計(jì)算機(jī)軟件技術(shù)的發(fā)展,惡意軟件感染破壞能力的增強(qiáng)、破解者水平的大幅提升,傳統(tǒng)的軟加密和硬加密方案對(duì)于安全性要求高的軟件來(lái)說(shuō),保護(hù)效果不明顯,現(xiàn)在已經(jīng)發(fā)展到其他很多成熟的方式:注冊(cè)驗(yàn)證、軟件水印、反跟蹤技術(shù)、加殼技術(shù)等。其中殼加密技術(shù)是軟件加密中最常見(jiàn)、最安全的一種技術(shù)。
加殼技術(shù)保護(hù)方式是指:利用某種算法,對(duì)可移植的可執(zhí)行文件PE進(jìn)行加密、壓縮,給PE文件加上一個(gè)外殼。軟件殼其實(shí)是一段為了防止軟件被非法使用、篡改、拷貝等的程序。通常這部分代碼比原程序優(yōu)先執(zhí)行并且取得控制權(quán),這樣就起到保護(hù)軟件的作用。加了殼的PE文件仍然能直接運(yùn)行,這個(gè)外殼程序負(fù)責(zé)把PE文件原程序解密解壓到內(nèi)存里,并且把控制權(quán)還給解壓解密后的原程序。整個(gè)過(guò)程都是運(yùn)行在內(nèi)存里,并且程序運(yùn)行速度基本沒(méi)有影響,解密、解壓過(guò)程完全透明。
PE文件格式
PE二進(jìn)制文件格式是微軟操作系統(tǒng)系列中的子集。PE文件格式二進(jìn)制數(shù)據(jù)流是線性的。它從一個(gè)MS-DOS頭部結(jié)構(gòu)開(kāi)始,一個(gè)模式的程序殘余緊隨其后,接著就是PE文件頭,其中PE文件頭包含映像文件頭(File?Header)和可選文件頭部(Optional?Header),這部分后面的結(jié)構(gòu)就是區(qū)塊表頭,緊跟在區(qū)塊表頭之后就是全部的區(qū)塊(Selection),PE文件的尾部是其他數(shù)據(jù),其中包含Code?View調(diào)試信息、COFF符號(hào)表信息、COFF行號(hào)信息等。PE文件格式總體結(jié)構(gòu)從大體上分為五大部分:DOS首部(DOS?Header)、PE文件頭(PE?Header)、區(qū)塊塊表(Section?Table)、塊(Section)、調(diào)試信息。
其中,PE文件格式結(jié)構(gòu)包含三個(gè)非常重要的表頭:DOS?Header:為了兼容以前的平臺(tái);PE?Header:PE文件相關(guān)配置信息;Section?Header:PE文件各個(gè)區(qū)塊的相關(guān)信息。
PE裝載器加載PE文件的時(shí)候,就是根據(jù)這個(gè)三個(gè)表頭所提供的文件信息把文件各部分加載映射到內(nèi)存中各自相應(yīng)的位置,保證與磁盤數(shù)據(jù)結(jié)構(gòu)布局的一致性。通過(guò)遍歷在磁盤里PE文件內(nèi)部信息來(lái)決定哪一部分被映射,一旦文件被加載到內(nèi)存里之后,內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)布局與外存(磁盤)上的數(shù)據(jù)結(jié)構(gòu)布局的一致性。因此,如果清楚在外存(磁盤)中數(shù)據(jù)結(jié)構(gòu)中存在的內(nèi)容,那么基本上都可以在內(nèi)存映射文件里找到一樣的數(shù)據(jù);但是在內(nèi)存映像文件中,通常已經(jīng)改變了這些數(shù)據(jù)之間的相對(duì)位置,數(shù)據(jù)偏移地址已經(jīng)和在外存上不一樣了,無(wú)論如何,這些全部的數(shù)據(jù)都可以將外存文件偏移與內(nèi)存映像文件偏移進(jìn)行轉(zhuǎn)換。加了殼的PE文件如果要實(shí)現(xiàn)脫殼,第一步也是最重要的一步就是找到PE文件原程序入口地址,然后抓取內(nèi)存PE文件的映像,還原程序。
發(fā)明內(nèi)容
針對(duì)上述現(xiàn)有技術(shù),本發(fā)明要解決的技術(shù)問(wèn)題是:現(xiàn)有加了殼的PE文件,殼加載本身就提供了一個(gè)明顯斷點(diǎn)給脫殼者,即無(wú)論什么殼最終都要轉(zhuǎn)的原程序的入口地址,然后成功脫掉外殼;其最終都要把控制權(quán)還給原程序,因此不能夠?qū)⑷肟诘刂愤@個(gè)分界點(diǎn)進(jìn)行隱藏,因此只能針對(duì)脫殼的第二步,采取一定保護(hù)措施讓脫殼者即使得到的內(nèi)存PE文件映像也沒(méi)有很好的辦法還原成原程序。
為了解決上述技術(shù)問(wèn)題,本發(fā)明采用如下技術(shù)方案:
一種基于殼技術(shù)的軟件保護(hù)方法,其特征在于,包括以下步驟,
一、加密步驟:對(duì)內(nèi)存中映像文件的區(qū)塊數(shù)據(jù)、資源數(shù)據(jù)進(jìn)行加密;
二、外殼步驟:外殼程序首先運(yùn)行,解密被加密的數(shù)據(jù),修改相關(guān)信息,還原PE文件的原程序。
三、外殼添加步驟:在PE文件中新建用于存放外殼部分?jǐn)?shù)據(jù)的區(qū)塊,同時(shí)將PE文件的原區(qū)塊表部分添加到該區(qū)塊表頭;
四、PE文件處理步驟:將PE文件讀入的內(nèi)存,然后對(duì)PE文件內(nèi)存映像的附加數(shù)據(jù)、Import?Tabel、資源數(shù)據(jù)進(jìn)行處理。
作為本發(fā)明進(jìn)一步的改進(jìn),將所述外殼步驟中的PE文件原程序進(jìn)行亂序處理。
更進(jìn)一步地,所述亂序處理包括如下三步:?
①找出程序代碼中的跳轉(zhuǎn)指令jmp、函數(shù)調(diào)用指令call和條件專用指令jcc;②篩選步驟①中指令地址,如果跳轉(zhuǎn)16位以下的直接不考慮,如果等于16位,看偏移是否足夠跳轉(zhuǎn)到花指令的VAR。如果高于16位,直接跳轉(zhuǎn);
③當(dāng)遇到偏移的時(shí)候,保存原指令要跳轉(zhuǎn)的地址。然后跳轉(zhuǎn)到花指令空間,然后在花指令執(zhí)行完的地方增添一個(gè)跳轉(zhuǎn)到原先要跳轉(zhuǎn)的那個(gè)地址。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于電子科技大學(xué),未經(jīng)電子科技大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310031524.2/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過(guò)保護(hù)計(jì)算機(jī)的特定內(nèi)部部件
G06F21-04 .通過(guò)保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過(guò)感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過(guò)限制訪問(wèn)計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過(guò)限制訪問(wèn)或處理程序或過(guò)程
- 防止技術(shù)開(kāi)啟的鎖具新技術(shù)
- 技術(shù)評(píng)價(jià)裝置、技術(shù)評(píng)價(jià)程序、技術(shù)評(píng)價(jià)方法
- 防止技術(shù)開(kāi)啟的鎖具新技術(shù)
- 視聽(tīng)模擬技術(shù)(VAS技術(shù))
- 用于技術(shù)縮放的MRAM集成技術(shù)
- 用于監(jiān)測(cè)技術(shù)設(shè)備的方法和用戶接口、以及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 用于監(jiān)測(cè)技術(shù)設(shè)備的技術(shù)
- 技術(shù)偵查方法及技術(shù)偵查系統(tǒng)
- 使用投影技術(shù)增強(qiáng)睡眠技術(shù)
- 基于技術(shù)庫(kù)的技術(shù)推薦方法
- 一種基于應(yīng)用軟件散布的軟件授權(quán)與保護(hù)方法及系統(tǒng)
- 一種用于航空機(jī)載設(shè)備的軟件在線加載系統(tǒng)及方法
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 惡意軟件檢測(cè)方法及裝置
- 一種基于軟件基因的軟件同源性分析方法和裝置
- 軟件引入系統(tǒng)、軟件引入方法及存儲(chǔ)介質(zhì)
- 軟件驗(yàn)證裝置、軟件驗(yàn)證方法以及軟件驗(yàn)證程序
- 使用靜態(tài)和動(dòng)態(tài)惡意軟件分析來(lái)擴(kuò)展惡意軟件的動(dòng)態(tài)檢測(cè)
- 一種工業(yè)控制軟件構(gòu)建方法和軟件構(gòu)建系統(tǒng)
- 可替換游戲軟件與測(cè)驗(yàn)軟件的裝置與方法





