[發(fā)明專利]一種采用動(dòng)態(tài)細(xì)粒度代碼隱藏與混淆技術(shù)的二進(jìn)制軟件保護(hù)方法有效
| 申請(qǐng)?zhí)枺?/td> | 201611009334.0 | 申請(qǐng)日: | 2016-11-16 |
| 公開(公告)號(hào): | CN106650340B | 公開(公告)日: | 2019-12-06 |
| 發(fā)明(設(shè)計(jì))人: | 張怡;吳蒙;糜?jì)寡?/a>;徐彬彬;唐勇;楊強(qiáng);解煒;周旭 | 申請(qǐng)(專利權(quán))人: | 中國人民解放軍國防科學(xué)技術(shù)大學(xué) |
| 主分類號(hào): | G06F21/14 | 分類號(hào): | G06F21/14;G06F21/12 |
| 代理公司: | 43008 湖南兆弘專利事務(wù)所(普通合伙) | 代理人: | 周長清<國際申請(qǐng)>=<國際公布>=<進(jìn)入 |
| 地址: | 410073 湖南省長沙市硯瓦池正街4*** | 國省代碼: | 湖南;43 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 采用 動(dòng)態(tài) 細(xì)粒度 代碼 隱藏 混淆 技術(shù) 二進(jìn)制 軟件 保護(hù) 方法 | ||
本發(fā)明公開了一種采用動(dòng)態(tài)細(xì)粒度代碼隱藏與混淆技術(shù)的二進(jìn)制軟件保護(hù)方法,其步驟為:S1:選擇隱藏目標(biāo);以基本塊為單位,在目標(biāo)程序中選擇待隱藏的代碼塊;S2:隱藏選擇的基本塊;針對(duì)每個(gè)待隱藏基本塊,將原來的一段代碼替換為一個(gè)分配器函數(shù)調(diào)用,并在剩余的位置填充其它混淆指令;S3:重新打包代碼;新建一個(gè)代碼段用來保存所有的附加邏輯及數(shù)據(jù)。本發(fā)明具有具有適用范圍廣、輕量級(jí)、可擴(kuò)展、安全性高等優(yōu)點(diǎn)。
技術(shù)領(lǐng)域
本發(fā)明主要涉及到計(jì)算機(jī)系統(tǒng)安全和軟件保護(hù)技術(shù)領(lǐng)域,特指一種采用動(dòng)態(tài)細(xì)粒度代碼隱藏與混淆技術(shù)的二進(jìn)制軟件保護(hù)方法。
背景技術(shù)
防逆向破解是軟件保護(hù)的核心之一,隨著知識(shí)產(chǎn)權(quán)重要性的增強(qiáng),軟件逆向保護(hù)技術(shù)得到了長足的發(fā)展,從加殼技術(shù)、靜態(tài)混淆保護(hù)技術(shù),到現(xiàn)在廣泛使用的動(dòng)態(tài)混淆保護(hù)和虛擬機(jī)保護(hù)技術(shù),軟件破解難度不斷增強(qiáng)。另一方面,在軟件大力發(fā)展的同時(shí),各種調(diào)試軟件和攻擊軟件也越來越高級(jí)化、智能化,為軟件的破解和攻擊提供了更便捷的途徑。
軟件面臨的攻擊主要有三類:軟件逆向分析、軟件篡改和軟件盜版。不同的攻擊對(duì)應(yīng)的軟件保護(hù)技術(shù)也不同。根據(jù)保護(hù)時(shí)是否需要運(yùn)行程序,二進(jìn)制軟件反分析技術(shù)主要分為可以采用靜態(tài)混淆的保護(hù)技術(shù)和采用動(dòng)態(tài)混淆的保護(hù)技術(shù)。
靜態(tài)混淆技術(shù)的主要實(shí)現(xiàn)手段有擾亂反匯編器、隱藏控制流和打亂數(shù)據(jù)結(jié)構(gòu)等,其區(qū)別于動(dòng)態(tài)混淆的最主要特征是程序在運(yùn)行時(shí)代碼不會(huì)發(fā)生改變。典型的靜態(tài)混淆方法包括垃圾指令、控制流平面化技術(shù)、分支函數(shù)等。靜態(tài)混淆技術(shù)可以有效抵抗靜態(tài)分析,擾亂逆向工具對(duì)程序的分析結(jié)果,其優(yōu)勢(shì)在于實(shí)現(xiàn)簡單、程序執(zhí)行效率和體積開銷小。但當(dāng)程序被動(dòng)態(tài)調(diào)試時(shí),通過跟蹤還原等手段,動(dòng)態(tài)逆向工具可以輕松清除掉擾亂反匯編的垃圾指令,從而還原真實(shí)的匯編代碼,同時(shí)動(dòng)態(tài)逆向工具還可以跟蹤程序的執(zhí)行路徑從而獲取被隱藏的控制流,最后通過匯編代碼分析從被隱藏的數(shù)據(jù)結(jié)構(gòu)中還原真實(shí)的數(shù)據(jù)結(jié)構(gòu)。因此靜態(tài)混淆技術(shù)難以抵抗動(dòng)態(tài)分析,僅僅依靠靜態(tài)混淆難以確保軟件的安全。
動(dòng)態(tài)混淆技術(shù)可以抵抗動(dòng)態(tài)分析的軟件混淆技術(shù),其在實(shí)現(xiàn)上主要包括自修改代碼技術(shù)和虛擬機(jī)保護(hù)技術(shù)。自修改代碼技術(shù)是程序運(yùn)行期間修改或產(chǎn)生代碼的一種機(jī)制,其主要利用了馮羅伊曼體系結(jié)構(gòu)的存儲(chǔ)程序的特點(diǎn),即指令和數(shù)據(jù)存儲(chǔ)在同一個(gè)內(nèi)存空間中,因此指令可以被視作數(shù)據(jù)被其他指令讀取和修改。程序在運(yùn)行時(shí)向代碼段中寫數(shù)據(jù),并且寫入的數(shù)據(jù)被作為指令執(zhí)行,達(dá)到自我修改的效果。自修改保護(hù)機(jī)制可以有效抵御靜態(tài)逆向分析而且由于代碼僅在需要時(shí)才以明文的形式出現(xiàn),可以在一定程度上阻礙逆向工具獲取程序所有的明文代碼,從而抵抗動(dòng)態(tài)分析。自修改代碼實(shí)現(xiàn)的主要方法主要包括指令替換、函數(shù)動(dòng)態(tài)加解密、分片集群加解密以及虛擬機(jī)保護(hù)等方法。
動(dòng)態(tài)混淆技術(shù)的核心思想在于阻止逆向工具直接獲取程序的機(jī)器碼,從而達(dá)到保護(hù)軟件的目的。但目前主流的方法還存在一些不足,一是明文窗口較大,無論是自修改代碼技術(shù)還是虛擬機(jī)保護(hù)技術(shù)為了提高執(zhí)行效率通常會(huì)以函數(shù)或者一整段代碼為單位進(jìn)行動(dòng)態(tài)生成,攻擊者容易通過跟蹤代碼的明文窗口直接獲取函數(shù)等關(guān)鍵信息;二是難以隱藏程序的控制流,由于明文窗口包含完整的函數(shù)信息,逆向工具很容易獲取該函數(shù)的明文機(jī)器碼,并通過分析該函數(shù)中的外部函數(shù)調(diào)用,獲取函數(shù)間的調(diào)用關(guān)系,從而構(gòu)建整個(gè)程序的控制流圖。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題就在于:針對(duì)現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一種具有適用范圍廣、輕量級(jí)、可擴(kuò)展、安全性高的采用動(dòng)態(tài)細(xì)粒度代碼隱藏與混淆技術(shù)的二進(jìn)制軟件保護(hù)方法。
為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案:
一種采用動(dòng)態(tài)細(xì)粒度代碼隱藏與混淆技術(shù)的二進(jìn)制軟件保護(hù)方法,其步驟為:
S1:選擇隱藏目標(biāo);以基本塊為單位,在目標(biāo)程序中選擇待隱藏的代碼塊;
S2:隱藏選擇的基本塊;針對(duì)每個(gè)待隱藏基本塊,將原來的一段代碼替換為一個(gè)分配器函數(shù)調(diào)用,并在剩余的位置填充其它混淆指令;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國人民解放軍國防科學(xué)技術(shù)大學(xué),未經(jīng)中國人民解放軍國防科學(xué)技術(shù)大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611009334.0/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過保護(hù)計(jì)算機(jī)的特定內(nèi)部部件
G06F21-04 .通過保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過限制訪問計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過限制訪問或處理程序或過程
- 動(dòng)態(tài)矢量譯碼方法和動(dòng)態(tài)矢量譯碼裝置
- 動(dòng)態(tài)口令的顯示方法及動(dòng)態(tài)令牌
- 動(dòng)態(tài)庫管理方法和裝置
- 動(dòng)態(tài)令牌的身份認(rèn)證方法及裝置
- 令牌、動(dòng)態(tài)口令生成方法、動(dòng)態(tài)口令認(rèn)證方法及系統(tǒng)
- 一種動(dòng)態(tài)模糊控制系統(tǒng)
- 一種基于動(dòng)態(tài)信號(hào)的POS機(jī)和安全保護(hù)方法
- 圖像動(dòng)態(tài)展示的方法、裝置、系統(tǒng)及介質(zhì)
- 一種基于POS機(jī)聚合碼功能分離顯示動(dòng)態(tài)聚合碼的系統(tǒng)
- 基于動(dòng)態(tài)口令的身份認(rèn)證方法、裝置和動(dòng)態(tài)令牌
- 一種管理和傳送細(xì)粒度業(yè)務(wù)的方法
- 基于CPU硬件性能監(jiān)控計(jì)數(shù)器的CPI精確測量方法
- 一種基于改進(jìn)YOLOv3的細(xì)粒度圖像分類方法
- 細(xì)粒度對(duì)象流量分析方法和裝置
- 一種基于點(diǎn)云數(shù)據(jù)建模的方法、裝置和電子設(shè)備
- 細(xì)粒度圖像分類方法、系統(tǒng)、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 基于圖像卷積特征的復(fù)雜背景下害蟲細(xì)粒度圖像識(shí)別方法
- 一種細(xì)粒度分類模型的優(yōu)化方法、系統(tǒng)及相關(guān)裝置
- 一種結(jié)合注意力混合裁剪的細(xì)粒度圖像識(shí)別方法
- 基于分級(jí)式結(jié)構(gòu)的細(xì)粒度視頻動(dòng)作識(shí)別方法
- 遙控器代碼格式結(jié)構(gòu)及其收發(fā)信方法及裝置
- 在虛擬機(jī)中驗(yàn)證代碼模塊的方法及裝置
- 一種用于代碼的管理方法及裝置
- 虛擬代碼提供系統(tǒng)、生成裝置、驗(yàn)證裝置、提供方法
- 一種自動(dòng)化代碼質(zhì)量檢查方法及系統(tǒng)
- 代碼掃描方法、裝置、計(jì)算設(shè)備及計(jì)算機(jī)存儲(chǔ)介質(zhì)
- 用于更新代碼的方法和裝置
- 前端代碼打包方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種代碼審查服務(wù)同步方法、裝置及計(jì)算機(jī)設(shè)備
- 一種高效智能源代碼安全管理平臺(tái)





