[發(fā)明專利]一種基于編譯中間結果的軟件保護方法有效
| 申請?zhí)枺?/td> | 202011603323.1 | 申請日: | 2020-12-29 |
| 公開(公告)號: | CN112528342B | 公開(公告)日: | 2022-06-28 |
| 發(fā)明(設計)人: | 關玉欣;吳昊 | 申請(專利權)人: | 內蒙古工業(yè)大學 |
| 主分類號: | G06F21/62 | 分類號: | G06F21/62;G06F21/64;G06F13/40;G06F8/41 |
| 代理公司: | 北京睿智保誠專利代理事務所(普通合伙) 11732 | 代理人: | 周新楣 |
| 地址: | 010051 內蒙古*** | 國省代碼: | 內蒙古;15 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 編譯 中間 結果 軟件 保護 方法 | ||
本發(fā)明公開了一種基于編譯中間結果的軟件保護方法,應用于基礎軟件技術領域,根據(jù)所述原始目標OBJ文件得到分拆數(shù)據(jù);對所述分拆數(shù)據(jù)分配唯一識別ID和預處理;利用所述唯一識別ID得到數(shù)字簽名,同時利用所述數(shù)字簽名和唯一識別ID將所述分拆數(shù)據(jù)重組,得到可執(zhí)行文件。將分拆數(shù)據(jù)分為包含保護代碼段和不包含保護代碼段的數(shù)據(jù),傳輸時,可以僅傳輸包含保護代碼段的數(shù)據(jù),能夠減小數(shù)據(jù)傳輸?shù)膲毫Γ粚Ψ植饠?shù)據(jù)進行預處理,主要是對數(shù)據(jù)進制進行轉換起到壓縮數(shù)據(jù)的作用,同時也減小數(shù)據(jù)傳輸?shù)膲毫?;通過數(shù)字簽名驗證,能夠保證數(shù)據(jù)不被非法破解,以及篡改,大大提高了軟件的安全性能。
技術領域
本發(fā)明涉及基礎軟件技術領域,更具體的說是涉及一種基于編譯中間結果的軟件保護方法。
背景技術
應用程序的開發(fā)包括:源代碼的編寫,編譯器的編譯的OBJ文件,以及鏈接器對OBJ文件的鏈接這一系列組成。每一個源文件對應一個OBJ文件,OBJ文件是由系統(tǒng)編譯器對高級語言進行匯編、符號處理、字符串處理之后的產(chǎn)物,OBJ文件符合相應平臺的文檔標準,如微軟COFF文件標準等。OBJ文件相較于鏈接后的可執(zhí)行文件來說,具有更加簡單的結構,以及更加靈活的數(shù)據(jù)索引以及代碼調用方式,因此處理起來更加靈活,可以進行多種方式的混淆,包括混淆函數(shù)導入導出表,字符串引用,增加冗余性等等。這種操作并不影響程序原有的功能。
目前,針對軟件保護的措施中,有針對源代碼級的軟件混淆,代碼混淆(Obfuscated code)亦稱花指令,是將計算機程序的代碼,轉換成一種功能上等價,但是難于閱讀和理解的形式的行為。其中一種方式是將代碼中的各種元素,如變量,函數(shù),類的名字改寫成無意義的名字。這樣帶來了一系列的問題,如被混淆的代碼難于理解,因此調試出錯也變得困難起來。還有一些針對可執(zhí)行文件的代碼保護,主要表現(xiàn)為對軟件加殼。加殼技術是在二進制的程序中植入一段代碼,在運行的時候優(yōu)先取得程序的控制權,做一些額外的工作,這一部分的工作可以用來對原來的指令進行預處理,將原有的程序執(zhí)行流程打亂,以做到防止軟件被分析和破解。以上兩種方式各有優(yōu)劣,源代碼級別的保護很局限,對于較為底層的語言的處理能力有限,而基于可執(zhí)行文件的加殼種類不多,容易被脫殼,進而將原有程序暴露給分析者。
因此,如何提供一種避免OBJ文件傳輸過程中泄露的基于編譯中間結果的軟件保護方法是本領域技術人員亟需解決的問題。
發(fā)明內容
有鑒于此,本發(fā)明提供了一種基于編譯中間結果的軟件保護方法,能夠避免OBJ文件傳輸過程中泄露,防止軟件遭到非法破解以及分析。
為了實現(xiàn)上述目的,本發(fā)明提供如下技術方案:
一種基于編譯中間結果的軟件保護方法,具體步驟包括如下:
將軟件源代碼進行編譯得到原始目標OBJ文件;
根據(jù)所述原始目標OBJ文件得到分拆數(shù)據(jù);
對所述分拆數(shù)據(jù)分配唯一識別ID和預處理;
利用所述唯一識別ID得到數(shù)字簽名,同時利用所述數(shù)字簽名和唯一識別ID將所述分拆數(shù)據(jù)重組,得到可執(zhí)行文件。
優(yōu)選的,在上述的一種基于編譯中間結果的軟件保護方法中,所述分拆數(shù)據(jù)包括第一分拆數(shù)據(jù)和第二分拆數(shù)據(jù);其中,所述第一分拆數(shù)據(jù)為包含保護代碼段的數(shù)據(jù),所述第二分拆數(shù)據(jù)為無保護代碼段的數(shù)據(jù)。
優(yōu)選的,在上述的一種基于編譯中間結果的軟件保護方法中,根據(jù)所述唯一識別ID區(qū)分是否包含保護代碼段。
優(yōu)選的,在上述的一種基于編譯中間結果的軟件保護方法中,所述唯一識別ID包含:所述分拆數(shù)據(jù)的序號、每個所述分拆數(shù)據(jù)對應的私鑰、與所述私鑰一一對應的公鑰。
優(yōu)選的,在上述的一種基于編譯中間結果的軟件保護方法中,所述預處理包括:將所述分拆數(shù)據(jù)默認進制類別進行進制轉換,得到壓縮數(shù)據(jù),所述壓縮數(shù)據(jù)的字節(jié)數(shù)小于所述分拆數(shù)據(jù)的字節(jié)數(shù)。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于內蒙古工業(yè)大學,未經(jīng)內蒙古工業(yè)大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011603323.1/2.html,轉載請聲明來源鉆瓜專利網(wǎng)。





