[發(fā)明專利]一種混淆代碼的方法、裝置以及介質(zhì)在審
| 申請(qǐng)?zhí)枺?/td> | 202210427858.0 | 申請(qǐng)日: | 2022-04-22 |
| 公開(kāi)(公告)號(hào): | CN114662063A | 公開(kāi)(公告)日: | 2022-06-24 |
| 發(fā)明(設(shè)計(jì))人: | 范益 | 申請(qǐng)(專利權(quán))人: | 蘇州浪潮智能科技有限公司 |
| 主分類號(hào): | G06F21/14 | 分類號(hào): | G06F21/14;G06F21/52 |
| 代理公司: | 北京集佳知識(shí)產(chǎn)權(quán)代理有限公司 11227 | 代理人: | 魯梅 |
| 地址: | 215100 江蘇省蘇州*** | 國(guó)省代碼: | 江蘇;32 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 混淆 代碼 方法 裝置 以及 介質(zhì) | ||
本申請(qǐng)公開(kāi)了一種混淆代碼的方法、裝置以及介質(zhì),應(yīng)用于代碼混淆領(lǐng)域。該方法先讀取待混淆的原始代碼,并分析原始代碼的邏輯順序得到各代碼塊的有向圖;再根據(jù)有向圖將各代碼塊放入預(yù)先設(shè)置的多維矩陣中得到代碼塊矩陣,最后編譯代碼塊矩陣就可以得到能夠執(zhí)行的混淆代碼。代碼塊矩陣中存在有在每一行上只包括有效代碼塊的維度,有效代碼塊為執(zhí)行算法在執(zhí)行混淆代碼時(shí),在對(duì)應(yīng)的行中需要使用的代碼塊;執(zhí)行算法在執(zhí)行混淆代碼時(shí),每次在代碼塊矩陣中選擇其中一個(gè)位置上的代碼塊進(jìn)行執(zhí)行。本申請(qǐng)?zhí)峁┑幕煜a的方法,最終得到混淆代碼實(shí)際上是一個(gè)多維的代碼塊矩陣,代碼塊矩陣中每行或每列都不一定擁有全部代碼塊,提高了混淆代碼的安全性。
技術(shù)領(lǐng)域
本申請(qǐng)涉及代碼混淆領(lǐng)域,特別是涉及一種混淆代碼的方法、裝置以及介質(zhì)。
背景技術(shù)
代碼混淆亦稱花指令,其目的是將計(jì)算機(jī)程序的代碼,轉(zhuǎn)換成一種在功能上等價(jià),但是難于閱讀和理解的形式。代碼混淆可以應(yīng)用于程序源代碼,也可以應(yīng)用于程序編譯而成的中間代碼。執(zhí)行代碼混淆的程序被稱作代碼混淆器。目前的混淆代碼均可通過(guò)扁平化技術(shù)放到一行,如ollvm中的應(yīng)用。代碼執(zhí)行時(shí),通過(guò)預(yù)先定義的單個(gè)算法得到執(zhí)行中的代碼塊的下一塊代碼的標(biāo)記值,可以直接定位到對(duì)應(yīng)的代碼塊。
但是,該混淆代碼中所有的代碼塊均在同一行中,并通過(guò)單個(gè)算法實(shí)現(xiàn)相互之間的聯(lián)系,這種混淆代碼結(jié)構(gòu)簡(jiǎn)單,可直接獲取到該行的所有代碼塊之后,再根據(jù)代碼混淆技術(shù)所使用的單個(gè)算法得到各代碼塊的執(zhí)行順序,最終破解該混淆代碼,可見(jiàn)此類混淆代碼的安全性不高。
由此可見(jiàn),如何提高混淆代碼的安全性,是本領(lǐng)域技術(shù)人員亟待解決的問(wèn)題。
發(fā)明內(nèi)容
本申請(qǐng)的目的是提供一種混淆代碼的方法、裝置以及介質(zhì),以提高混淆代碼的安全性。
為解決上述技術(shù)問(wèn)題,本申請(qǐng)?zhí)峁┮环N混淆代碼的方法,包括:
讀取待混淆的原始代碼;其中,所述原始代碼包括多個(gè)代碼塊;
分析所述原始代碼的邏輯順序得到各所述代碼塊的有向圖;
根據(jù)所述有向圖將各所述代碼塊放入預(yù)先設(shè)置的多維矩陣中得到代碼塊矩陣;其中,所述代碼塊矩陣中存在有在每一行上只包括所述代碼塊中的有效代碼塊的維度;所述有效代碼塊為執(zhí)行算法在執(zhí)行混淆代碼時(shí),在對(duì)應(yīng)的行中需要執(zhí)行的所述代碼塊;所述執(zhí)行算法在執(zhí)行所述混淆代碼時(shí),每次在所述代碼塊矩陣中選擇其中一個(gè)位置上的所述代碼塊進(jìn)行執(zhí)行;
編譯所述代碼塊矩陣得到所述混淆代碼。
優(yōu)選地,所述根據(jù)所述有向圖將各所述代碼塊放入預(yù)先設(shè)置的多維矩陣中得到代碼塊矩陣包括:
通過(guò)BFS算法將各所述代碼塊放入預(yù)先設(shè)置的所述多維矩陣中得到所述代碼塊矩陣。
優(yōu)選地,所述多維矩陣為二維矩陣;
將所述有向圖中的環(huán)和環(huán)下游的頂點(diǎn)對(duì)應(yīng)的所述代碼塊放入所述二維矩陣包括:
篩選出所述環(huán)和環(huán)下游的所述頂點(diǎn)對(duì)應(yīng)的所述代碼塊;
將所述環(huán)和環(huán)下游的所述頂點(diǎn)對(duì)應(yīng)的所述代碼塊放入所述二維矩陣的其中一個(gè)所述維度的每一行上;
所述篩選出所述環(huán)和環(huán)下游的所述頂點(diǎn)對(duì)應(yīng)的所述代碼塊包括:
判斷所述有向圖中是否存在入度為零的所述頂點(diǎn);
若是,則濾除入度為零的所述頂點(diǎn)對(duì)應(yīng)的所述代碼塊;
將入度為零的所述頂點(diǎn)的出發(fā)邊的另一端的所述頂點(diǎn)的入度減一,并返回所述判斷所述有向圖中是否存在入度為零的所述頂點(diǎn)的步驟;
若否,則將剩余的所述代碼塊作為所述環(huán)和環(huán)下游的所述頂點(diǎn)對(duì)應(yīng)的所述代碼塊。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于蘇州浪潮智能科技有限公司,未經(jīng)蘇州浪潮智能科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210427858.0/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ò)程
- 加密算法中的運(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í)混淆檢測(cè)方法
- 遙控器代碼格式結(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)
- 一種數(shù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





