[發明專利]基于編譯器前端的混淆方法、存儲介質及終端設備有效
| 申請號: | 201910716285.1 | 申請日: | 2019-08-02 |
| 公開(公告)號: | CN110413283B | 公開(公告)日: | 2023-05-30 |
| 發明(設計)人: | 方令;肖巍;龍柏林;杜洋 | 申請(專利權)人: | 北京智游網安科技有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F21/14 |
| 代理公司: | 深圳市君勝知識產權代理事務所(普通合伙) 44268 | 代理人: | 王永文 |
| 地址: | 100000 北京市海淀區東北旺西路8*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 編譯器 前端 混淆 方法 存儲 介質 終端設備 | ||
本發明公開了一種基于編譯器前端的混淆方法、存儲介質及終端設備,該方法包括:編譯器前端分析C/C++源文件,得到相應的抽象語法樹及源文件所包含的頭文件;遍歷抽象語法樹的所有節點,檢測其中復合語句的子句是否存在只有單分支的第一子句,根據檢測結果插入多余控制流;創建一與源文件類型一致的空白文件;將源文件所包含的頭文件按照C/C++包含頭文件的語法形式輸出到空白文件中,并將抽象樹中屬于源文件的頂級聲明按照正確的語法形式輸出到空白文件中。這樣,通過編譯器前端插入多余控制流,創建源文件同類型的空白文件,并將抽象語法樹中的內容及所述頭文件重新寫入空白文件,使得代碼保護能力和可移植性兼備。
技術領域
本發明涉及計算機應用技術領域,特別涉及一種基于編譯器前端的混淆方法、存儲介質及終端設備。
背景技術
傳統的靜態式編譯器的主流設計是三段式設計,分別為前端、優化器和后端;前端用于分析源代碼、檢查錯誤,并構建特定語言的抽象語法樹。抽象語法樹可轉化為中間層表示形式的代碼,優化器和后端運行在中間層代碼上;優化器在中間層代碼上進行各種變換以對代碼進行優化,后端將中間層代碼轉化成特定平臺的機器指令。
在信息安全領域,代碼混淆的目的是為了使代碼變得更難懂,加大靜態分析難度,防止軟件被惡意逆向分析;插入多余控制流是混淆方法的一種,其通過往函數的控制流程中插入多余的控制流,使破解者無法利用靜態分析工具重建出原始的函數控制流圖;插入的控制流可能是永遠也不會被執行到的,也可能是總會被執行到的,還有可能是有時會被執行、有時不會被執行的。
目前的C/C++混淆技術是基于OLLVM實現的,混淆的是中間層表示形式的代碼;OLLVM(Obfuscator-LLVM)是一個開源項目,旨在提供一夽開源的針對LLVM的代碼混淆工具,通過插入多余控制流,來增加逆向工程的難度;但是OLLVM混淆的結果,只能由LLVM編譯器轉化成相應平臺的機器指令,無法移植,更不可能被其它編譯器再次處理。
因而現有技術還有待改進和提高。
發明內容
本發明要解決的技術問題在于,針對現有技術的不足,提供一種基于編譯器前端的混淆方法、存儲介質及終端設備,以解決現有技術中OLLVM的混淆結果不能通過其他編譯器編譯,無法移植的問題。
為了解決上述技術問題,本發明所采用的技術方案如下:
一種基于編譯器前端的混淆方法,其包括:
由編譯器前端分析處理C或C++源文件,得到相應的抽象語法樹及源文件包含的頭文件;
遍歷抽象語法樹的所有節點,檢測其中復合語句的子句中是否存在只有單分支的第一子句,根據檢測結果插入多余控制流;
創建一個與原始源文件類型一致的C或C++空白文件;
將源文件所包含的頭文件按照C或C++包含頭文件的語法形式輸出到空白文件中,并將抽象樹中屬于源文件的頂級聲明按照正確的語法形式輸出到空白文件中。
所述遍歷抽象語法樹的所有節點,檢測其中復合語句的子句中是否存在只有單分支的第一子句,根據檢測結果插入多余控制流具體包括:
若復合語句的子句中存在只有單分支的第一子句,則為該語句增加一個第二分支;所述第二分支的內容是隨機生成的,或是從單分支拷貝過來然后稍加改動的。
所述遍歷抽象語法樹的所有節點,檢測其中復合語句的子句中是否存在只有單分支的第一子句,根據檢測結果插入多余控制流還包括:
若復合語句的子句中不存在所述第一子句,則從子句中隨機選擇一組不包含變量聲明的第一被替換語句,創建一個第二子句來替換這組第一被替換語句。
所述第二子句的控制表達式是恒為真的不透明謂詞,所述第二子句中唯一的單分支的內容即是所述第一被替換語句。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京智游網安科技有限公司,未經北京智游網安科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910716285.1/2.html,轉載請聲明來源鉆瓜專利網。





