[發明專利]一種基于LLVM的虛擬機保護方法及系統在審
| 申請號: | 202210017306.2 | 申請日: | 2022-01-07 |
| 公開(公告)號: | CN114327789A | 公開(公告)日: | 2022-04-12 |
| 發明(設計)人: | 文偉平;劉琛;王雅儀;李成揚;黃天波 | 申請(專利權)人: | 北京大學 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06F21/14;G06F8/41;G06F8/30 |
| 代理公司: | 北京萬象新悅知識產權代理有限公司 11360 | 代理人: | 李稚婷 |
| 地址: | 100871*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 llvm 虛擬機 保護 方法 系統 | ||
本發明公開了一種基于LLVM的虛擬機保護方法及系統,通過實現自定義指令集與程序解釋器,在LLVM中間代碼層面實現虛擬機保護。本發明通過將源代碼轉化為LLVM中間表示,遍歷整個IR程序獲得程序所有的函數和基本塊作為基本單位,為所有基本單位進行依賴分析并根據依賴分析結果對基本單位進行切分得到基本指令,將基本指令進行重組得到新基本塊,并綁定操作碼,根據新基本塊創建操作碼數組和解釋器,通過解釋器完成整個程序的控制邏輯從而達到虛擬機保護的目的。相比傳統靜態混淆技術,本發明具有更高的反混淆能力;相比傳統的虛擬機保護技術,本發明在保證高混淆強度的情況下,極大地降低了混淆所需要的時間、空間開銷。
技術領域
本發明涉及計算機安全技術領域,尤其涉及一種基于LLVM的虛擬機保護方法及系統。
背景技術
在軟件安全形勢愈發嚴峻的情況下,保護軟件不被篡改和惡意逆向是一項十分艱巨的任務。代碼混淆是軟件安全保護的一項重要技術。它通過在指令或函數級別進行修改來隱藏程序的原始邏輯,來增加逆向工程的難度。現有的代碼混淆技術主要分為靜態混淆技術和動態混淆技術。靜態混淆技術主要包括控制流扁平化、虛假控制流等方式。但是傳統的靜態混淆技術具有抗反混淆能力較弱,無法抵抗動態調試等缺點。
動態混淆技術在實現上主要包括自修改代碼技術和虛擬機保護技術,自修改代碼技術可以在一定程度上阻礙逆向工具獲取程序所有的明文代碼,從而抵抗動態分析。虛擬機保護與傳統自修改代碼技術的最主要區別是虛擬機增加了一層自定義的指令集,而且其難以逆向,破解者想要獲得程序源碼,首先必須弄懂虛擬機的指令集,這極大增加了逆向的開銷。但是傳統的虛擬機保護具有時間、空間開銷過大的缺點。
發明內容
為了克服上述現有技術的不足,本發明提供一種基于LLVM的虛擬機保護方法及系統,通過實現自定義指令集與程序解釋器,在LLVM中間代碼層面實現虛擬機保護。相比傳統靜態混淆技術,本發明具有更高的反混淆能力;相比傳統的虛擬機保護技術,本發明在保證高混淆強度的情況下,極大地降低了混淆所需要的時間,空間開銷。
本發明提供的基于LLVM的虛擬機保護方法通過將源代碼編譯為LLVM中間表示(以下簡稱LLVM IR),遍歷整個LLVM IR程序獲得程序所有的函數和基本塊作為基本單位,為所有基本單位進行依賴分析并根據依賴分析結果對基本單位進行切分得到基本指令,將基本指令進行重組得到新基本塊并綁定操作碼,根據新基本塊創建操作碼數組和解釋器,通過解釋器完成整個程序的控制邏輯,從而達到虛擬機保護的目的,主要包括:提取程序基本單位階段、基本單位依賴分析階段、指令重組階段、構建操作碼數組與解釋器階段。
提取程序基本單位階段執行如下步驟:
步驟1,將源代碼轉化成LLVM中間表示,即使用編譯器將源代碼編譯成LLVM可分析的.bc文件,并在編譯的過程中避免信息丟失;
步驟2,根據步驟1得到的源代碼的.bc文件,獲取源程序中的函數和基本塊,即在整個程序層面和程序中的所有函數層面進行遍歷,獲取到程序中的所有函數,以及函數中的所有基本塊,并將這些信息作為基本單位進行保存。
基本單位依賴分析階段具體執行如下步驟:
步驟3,根據步驟2中得到的基本單位信息,對基本單位的每一條指令進行遍歷,每條指令有一個標志位來標識是否經過了依賴分析;
步驟4,對于沒有經過依賴分析的指令,需要從該條指令開始,分析得到該指令的所有依賴指令,并將所有依賴指令放進同一個分組,該分組代表一個最小的、不可分割的單位。
指令重組階段具體執行如下步驟:
步驟5,該步驟需要對步驟4得到的分組進行指令重組,將分組中的指令包裝成為一個新的基本塊。首先要得到要包裝的分組,為該分組創建一個新基本塊,然后將分組中的指令全部復制到新基本塊中;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京大學,未經北京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210017306.2/2.html,轉載請聲明來源鉆瓜專利網。





