[發(fā)明專利]一種基于二次匯編的代碼混淆方法在審
| 申請(qǐng)?zhí)枺?/td> | 201910462869.0 | 申請(qǐng)日: | 2019-05-30 |
| 公開(公告)號(hào): | CN110210190A | 公開(公告)日: | 2019-09-06 |
| 發(fā)明(設(shè)計(jì))人: | 賈曉啟;王暢;陳陽;杜海超;解亞敏;唐靜 | 申請(qǐng)(專利權(quán))人: | 中國科學(xué)院信息工程研究所 |
| 主分類號(hào): | G06F21/14 | 分類號(hào): | G06F21/14 |
| 代理公司: | 北京君尚知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11200 | 代理人: | 陳艷 |
| 地址: | 100093 *** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 二進(jìn)制文件 混淆 匯編 代碼混淆 格式規(guī)范 加密 預(yù)處理 指令 傳統(tǒng)二進(jìn)制 合法性檢驗(yàn) 地址信息 匯編文件 匯編指令 逆向工程 軟件保護(hù) 跳轉(zhuǎn)指令 指令序列 可執(zhí)行 控制流 細(xì)粒度 重定位 垃圾 編譯 替換 盜用 多樣性 攻擊 引入 檢查 | ||
1.一種基于二次匯編的代碼混淆方法,包括以下步驟:
對(duì)二進(jìn)制文件進(jìn)行合法性檢驗(yàn),檢查其是否為格式規(guī)范的二進(jìn)制文件;
對(duì)格式規(guī)范的二進(jìn)制文件進(jìn)行預(yù)處理,找出有關(guān)跳轉(zhuǎn)指令和適合插入垃圾指令塊的地址信息;
對(duì)二進(jìn)制文件進(jìn)行二次匯編,將文件中的匯編指令替換成等效的指令序列,并在文件中插入垃圾指令進(jìn)行控制流混淆,生成混淆的匯編文件,再編譯成混淆的二進(jìn)制文件;
對(duì)混淆的二進(jìn)制文件進(jìn)行加密,生成可執(zhí)行加密二進(jìn)制文件。
2.如權(quán)利要求1所述的方法,其特征在于,替換指令時(shí),根據(jù)指令操作碼對(duì)指令進(jìn)行分類,若有立即數(shù)出現(xiàn),則進(jìn)行立即數(shù)加密,若有特殊寄存器出現(xiàn),則直接添加花指令;調(diào)用相應(yīng)的處理函數(shù),隨機(jī)選擇混淆模板,生成混淆后的替換指令;將該替換指令返回,替代原指令。
3.如權(quán)利要求1所述的方法,其特征在于,控制流混淆時(shí),通過基于原跳轉(zhuǎn)指令的插入算法插入垃圾指令,該基于原跳轉(zhuǎn)指令的插入算法是通過插入中間跳的方式進(jìn)行控制流混淆,具體為:先記錄原跳轉(zhuǎn)目標(biāo)地址,再利用垃圾指令生成器生成一段新的垃圾指令,再將原跳轉(zhuǎn)指令的目標(biāo)改為插入的垃圾指令塊,垃圾指令塊執(zhí)行完畢后繼續(xù)跳轉(zhuǎn)到原目標(biāo)執(zhí)行,實(shí)現(xiàn)控制流混淆。
4.如權(quán)利要求1所述的方法,其特征在于,控制流混淆時(shí),通過基于垃圾指令塊間跳轉(zhuǎn)的混淆算法插入垃圾指令,該基于垃圾指令塊間跳轉(zhuǎn)的混淆算法為通過插入隨機(jī)數(shù)個(gè)垃圾指令塊,并通過跳轉(zhuǎn)指令連接各個(gè)垃圾指令塊,實(shí)現(xiàn)控制流混淆。
5.如權(quán)利要求1所述的方法,其特征在于,加密方法為加密.text段的內(nèi)容,為二進(jìn)制文件添加一個(gè)新節(jié),并向新節(jié)中添加解密代碼,修改文件入口點(diǎn)為新節(jié)的程序入口,該程序解密.text段完成后,再跳轉(zhuǎn)到程序的原始入口點(diǎn)。
6.一種基于二次匯編的代碼混淆系統(tǒng),包括:
合法性檢驗(yàn)?zāi)K,用于對(duì)二進(jìn)制文件進(jìn)行合法性檢驗(yàn),檢查其是否為格式規(guī)范的二進(jìn)制文件;
預(yù)處理模塊,用于對(duì)格式規(guī)范的二進(jìn)制文件進(jìn)行預(yù)處理,找出有關(guān)跳轉(zhuǎn)指令和適合插入垃圾指令塊的地址信息;
二次匯編模塊,包括指令替換子模塊和控制流混淆子模塊,該指令替換子模塊用于將文件中的匯編指令替換成等效的指令序列,該控制流混淆子模塊在文件中插入垃圾指令進(jìn)行控制流混淆;
加密模塊,用于對(duì)混淆的二進(jìn)制文件進(jìn)行加密,生成可執(zhí)行加密二進(jìn)制文件。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,還包括垃圾指令生成器,用于生成控制流混淆子模塊在文件中插入的垃圾指令。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國科學(xué)院信息工程研究所,未經(jīng)中國科學(xué)院信息工程研究所許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910462869.0/1.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 .通過限制訪問或處理程序或過程
- 二進(jìn)制文件管理、更新方法、裝置以及系統(tǒng)
- 一種數(shù)據(jù)刪除方法、設(shè)備及平臺(tái)
- 通過二進(jìn)制和存儲(chǔ)器多樣性進(jìn)行混淆的系統(tǒng)和方法
- 一種Java應(yīng)用與非JNI規(guī)范二進(jìn)制文件相互調(diào)用的方法
- 一種面向關(guān)鍵軟件二進(jìn)制文件的特征碼生成方法
- 同源二進(jìn)制文件檢索方法和裝置
- 一種消除代碼構(gòu)建差異的方法及裝置
- 文件壓縮方法及裝置、文件加載方法及裝置和電子設(shè)備
- 一種基于分布式的二進(jìn)制數(shù)據(jù)分類處理方法和系統(tǒng)
- 一種二進(jìn)制文件中混合在指令中的數(shù)據(jù)的識(shí)別方法及裝置
- 加密算法中的運(yùn)算符提升
- 包混淆和包轉(zhuǎn)發(fā)
- 一種Java代碼的混淆方法、恢復(fù)方法及其裝置
- 代碼混淆方法、系統(tǒng)、計(jì)算機(jī)裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 解混淆方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種自定義混淆方案的JavaScript代碼混淆方法
- 代碼混淆方法、裝置及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)反混淆方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 一種文本糾錯(cuò)方法及裝置
- 一種基于圖卷積網(wǎng)絡(luò)的函數(shù)級(jí)混淆檢測方法
- 應(yīng)用程序的代碼混淆方法和系統(tǒng)
- 一種PowerShell代碼的去混淆方法及裝置
- 一種基于Java代碼的混淆方法和裝置
- 代碼混淆方法、系統(tǒng)、計(jì)算機(jī)裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種軟件代碼處理方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 匯編代碼清除混淆的方法、裝置、介質(zhì)及設(shè)備
- 一種自定義混淆方案的JavaScript代碼混淆方法
- 代碼混淆方法、裝置及存儲(chǔ)介質(zhì)
- 代碼混淆處理及運(yùn)行的方法、裝置、終端設(shè)備及存儲(chǔ)介質(zhì)
- 一種可自定義規(guī)則的JavaScript代碼混淆方法和系統(tǒng)





