[發(fā)明專利]一種程序編譯方法、裝置及系統(tǒng)有效
| 申請?zhí)枺?/td> | 201910456368.1 | 申請日: | 2019-05-29 |
| 公開(公告)號(hào): | CN110147238B | 公開(公告)日: | 2022-11-11 |
| 發(fā)明(設(shè)計(jì))人: | 張錚;趙玉風(fēng);鄔江興;王曉梅;王立群;李衛(wèi)超;馬博林;劉鎮(zhèn)武;劉浩;張高斐;潘傳幸;李方云 | 申請(專利權(quán))人: | 中國人民解放軍戰(zhàn)略支援部隊(duì)信息工程大學(xué) |
| 主分類號(hào): | G06F8/41 | 分類號(hào): | G06F8/41;G06F21/12 |
| 代理公司: | 北京集佳知識(shí)產(chǎn)權(quán)代理有限公司 11227 | 代理人: | 牛亭亭;王寶筠 |
| 地址: | 450001 *** | 國省代碼: | 河南;41 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 程序 編譯 方法 裝置 系統(tǒng) | ||
本申請公開了一種程序編譯方法、裝置及系統(tǒng),方法包括:獲得待編譯的程序代碼,所述程序代碼中包括至少一個(gè)存根函數(shù)的調(diào)用地址;獲得所述程序代碼的編輯腳本,所述編輯腳本與所述存根函數(shù)的調(diào)用地址相關(guān);利用所述編輯腳本和所述存根函數(shù)的調(diào)用地址,重構(gòu)出所述程序代碼中被所述存根函數(shù)的調(diào)用地址替換的目標(biāo)函數(shù)的調(diào)用地址;基于所述目標(biāo)函數(shù)的調(diào)用地址,對所述程序代碼進(jìn)行編譯,得到所述程序代碼的可執(zhí)行文件。可見,本申請中,即使可執(zhí)行文件被反匯編,也會(huì)由于其反匯編出的程序代碼中存在存根函數(shù)而不會(huì)被外界解讀出程序代碼的內(nèi)容,從而達(dá)到保護(hù)程序代碼的目的,由此提高程序代碼的安全性。
技術(shù)領(lǐng)域
本申請涉及軟件安全技術(shù)領(lǐng)域,特別涉及一種程序編譯方法、裝置及系統(tǒng)。
背景技術(shù)
目前,攻擊者能夠采用逆向工程技術(shù)通過對程序代碼編譯完成的執(zhí)行文件進(jìn)行反匯編,以恢復(fù)程序代碼中的高級(jí)語義信息,從而幫助攻擊者發(fā)現(xiàn)軟件漏洞進(jìn)行未經(jīng)許可的修改,如繞過密碼保護(hù)、識(shí)別和刪除軟件程序中的版權(quán)通知或水印、竊取知識(shí)產(chǎn)權(quán)等,導(dǎo)致各種軟件的安全性較低。
為此,亟需一種能夠?qū)浖某绦虼a進(jìn)行保護(hù)的方案。
發(fā)明內(nèi)容
有鑒于此,本申請的目的在于提供一種程序編譯方法、裝置及系統(tǒng),用以解決現(xiàn)有技術(shù)中軟件的程序代碼安全性較低的技術(shù)問題。
本申請?zhí)峁┝艘环N程序編譯方法,包括:
獲得待編譯的程序代碼,所述程序代碼中包括至少一個(gè)存根函數(shù)的調(diào)用地址;
獲得所述程序代碼的編輯腳本,所述編輯腳本與所述存根函數(shù)的調(diào)用地址相關(guān);
利用所述編輯腳本和所述存根函數(shù)的調(diào)用地址,重構(gòu)出所述程序代碼中被所述存根函數(shù)的調(diào)用地址替換的目標(biāo)函數(shù)的調(diào)用地址;
基于所述目標(biāo)函數(shù)的調(diào)用地址,對所述程序代碼進(jìn)行編譯,得到所述程序代碼的可執(zhí)行文件。
上述方法,優(yōu)選的,所述待編譯的程序代碼預(yù)先通過以下處理生成:
獲得原始的程序代碼,所述程序代碼中包括至少一個(gè)目標(biāo)函數(shù)的調(diào)用地址;
對所述原始的程序代碼進(jìn)行代碼優(yōu)化處理;
對所述目標(biāo)函數(shù)的調(diào)用地址使用相應(yīng)的存根函數(shù)的調(diào)用地址進(jìn)行替換,以得到待編譯的程序代碼。
上述方法,優(yōu)選的,對所述目標(biāo)函數(shù)的調(diào)用地址使用相應(yīng)的存根函數(shù)的調(diào)用地址進(jìn)行替換,包括:
分別對所述程序代碼中的每個(gè)所述目標(biāo)函數(shù)的調(diào)用地址替換為其各自對應(yīng)的存根函數(shù)的調(diào)用地址;
其中,每個(gè)所述存根函數(shù)的調(diào)用地址不同。
上述方法,優(yōu)選的,對所述目標(biāo)函數(shù)的調(diào)用地址使用相應(yīng)的存根函數(shù)的調(diào)用地址進(jìn)行替換,包括:
對所述程序代碼中的所述目標(biāo)函數(shù)的調(diào)用地址進(jìn)行分組;
將屬于同一分組的所述目標(biāo)函數(shù)的調(diào)用地址替換為該分組對應(yīng)的存根函數(shù)的調(diào)用地址;
其中,屬于不同分組的所述目標(biāo)函數(shù)的調(diào)用地址所對應(yīng)的存根函數(shù)的調(diào)用地址不同。
上述方法,優(yōu)選的,利用所述編輯腳本和所述存根函數(shù)的調(diào)用地址,重構(gòu)出所述程序代碼中被所述存根函數(shù)的調(diào)用地址替換的目標(biāo)函數(shù)的調(diào)用地址,包括:
解析所述編輯腳本中所述存根函數(shù)的調(diào)用地址在所述程序代碼中的位置信息和所述存根函數(shù)的調(diào)用地址替換目標(biāo)函數(shù)的調(diào)用地址時(shí)的修改信息;
基于所述位置信息和所述修改信息,重構(gòu)所述程序代碼中所述目標(biāo)函數(shù)的調(diào)用地址。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國人民解放軍戰(zhàn)略支援部隊(duì)信息工程大學(xué),未經(jīng)中國人民解放軍戰(zhàn)略支援部隊(duì)信息工程大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910456368.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 功能限制程序、安裝程序生成程序和程序存儲(chǔ)介質(zhì)
- 程序生成系統(tǒng)、程序生成程序和程序生成模塊
- 程序生成系統(tǒng)、程序生成程序和程序生成模塊
- 程序創(chuàng)建裝置,程序創(chuàng)建方法和程序
- 程序生成裝置、程序生產(chǎn)方法及程序
- 程序生成裝置、程序生成程序以及程序生成方法
- 程序生成裝置、程序生成方法及程序生成程序
- 程序開發(fā)支持裝置、程序開發(fā)支持方法以及存儲(chǔ)介質(zhì)
- 程序執(zhí)行輔助裝置、程序執(zhí)行輔助方法及程序執(zhí)行輔助程序
- 程序?qū)φ昭b置、程序?qū)φ辗椒俺绦驅(qū)φ粘绦?/a>
- 一種軟件開發(fā)中的自動(dòng)化編譯方法及系統(tǒng)
- 一種動(dòng)態(tài)分配編譯機(jī)的系統(tǒng)及其方法
- 一種實(shí)現(xiàn)安卓編譯隔離的方法和系統(tǒng)
- 調(diào)度服務(wù)器、編譯服務(wù)器及分布式編譯方法
- 代碼編譯方法、編譯設(shè)備、存儲(chǔ)介質(zhì)及裝置
- 文件編譯方法、裝置、編譯設(shè)備及存儲(chǔ)介質(zhì)
- 一種編譯方法、裝置及系統(tǒng)
- 一種編譯方法和相關(guān)裝置
- 一種編譯方法、電子設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種代碼編譯方法、裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測試終端的測試方法
- 一種服裝用人體測量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





