[發明專利]基于編譯器前端的混淆方法、存儲介質及終端設備有效
| 申請號: | 201910716285.1 | 申請日: | 2019-08-02 |
| 公開(公告)號: | CN110413283B | 公開(公告)日: | 2023-05-30 |
| 發明(設計)人: | 方令;肖巍;龍柏林;杜洋 | 申請(專利權)人: | 北京智游網安科技有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F21/14 |
| 代理公司: | 深圳市君勝知識產權代理事務所(普通合伙) 44268 | 代理人: | 王永文 |
| 地址: | 100000 北京市海淀區東北旺西路8*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 編譯器 前端 混淆 方法 存儲 介質 終端設備 | ||
1.一種基于編譯器前端的混淆方法,其特征在于,其包括:
由編譯器前端分析處理C或C++源文件,得到相應的抽象語法樹及源文件包含的頭文件;
遍歷抽象語法樹的所有節點,檢測其中復合語句的子句中是否存在只有單分支的第一子句,根據檢測結果插入多余控制流,具體包括;
若復合語句的子句中存在只有單分支的第一子句,則為該子句增加一個第二分支;若復合語句的子句中不存在所述第一子句,則從子句中隨機選擇一組不包含變量聲明的第二被替換語句,創建一個具有雙分支的第三子句來替換這組第二被替換語句;將所述第二被替換語句放入第三子句的第二分支,再將所述第二被替換語句稍加改動后放入第三子句的第一分支,其中,所述第一子句和第三子句為if語句,所述第三子句的第二分支為eles語句,所述第三子句的控制表達式是恒為假的不透明謂詞;
創建一個與原始源文件類型一致的C或C++空白文件;
將源文件所包含的頭文件按照C或C++包含頭文件的語法形式輸出到空白文件中,并將抽象樹中屬于源文件的頂級聲明按照正確的語法形式輸出到空白文件中。
2.根據權利要求1所述的基于編譯器前端的混淆方法,其特征在于,所述第二分支的內容是隨機生成的,或是從單分支拷貝過來然后稍加改動的。
3.一種終端設備,其特征在于,包括:處理器和存儲器;所述存儲器上存儲有可被所述處理器執行的計算機可讀程序;所述處理器執行所述計算機可讀程序時實現如權利要求1~2任意一項所述的基于編譯器前端的混淆方法中的步驟。
4.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質存儲有一個或者多個程序,所述一個或者多個程序可被一個或者多個處理器執行,以實現如權利要求1~2任意一項所述基于編譯器前端的混淆方法中的步驟。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京智游網安科技有限公司,未經北京智游網安科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910716285.1/1.html,轉載請聲明來源鉆瓜專利網。





