[發明專利]程序控制流混淆方法、系統、存儲介質、云服務器及應用在審
| 申請號: | 202010193086.X | 申請日: | 2020-03-18 |
| 公開(公告)號: | CN111538962A | 公開(公告)日: | 2020-08-14 |
| 發明(設計)人: | 沈玉龍;王博;何昶輝;趙迪;張志為;何嘉洪;康曉宇;劉家繼;許王哲 | 申請(專利權)人: | 西安電子科技大學 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14 |
| 代理公司: | 西安長和專利代理有限公司 61227 | 代理人: | 黃偉洪 |
| 地址: | 710071 陜西省*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 程序控制 混淆 方法 系統 存儲 介質 服務器 應用 | ||
1.一種程序控制流混淆方法,其特征在于,所述程序控制流混淆方法包括:
第一步,分支語句隱藏,將原始程序中分支語句判斷條件進行隱藏,將分支語句的判斷條件轉換為第一自定義函數,獲得轉換程序和控制流矩陣;控制流矩陣包括轉換的判斷條件在原程序中的唯一標識、比較運算符左右兩個操作數的標識以及比較運算符;
第二步,偽分支語句構造與插入方法,在原始語句s之前構造并插入偽分支語句,偽分支語句最終將流向s;將偽分支語句的判斷條件轉換為第二自定義函數,獲得轉換程序和控制流矩陣;控制流矩陣包括轉換的判斷條件在原程序中的唯一標識,以及True或者False;
第三步,關系約束賦值語句構造與插入,在原始分支語句b之前構造并插入約束賦值語句,構造分支語句b不可達的變量,對分支語句中的隨機列表中的整型變量進行兩兩隨機約束;
第四步,關系約束賦值語句隱藏,將原始程序中賦值語句進行隱藏,將賦值語句轉換為第三自定義函數,獲得轉換程序和控制流矩陣;控制流矩陣包括轉換的在原程序中的唯一標識、被賦值操作數的標識以及賦值語句。
2.如權利要求1所述的程序控制流混淆方法,其特征在于,將原始程序中分支語句判斷條件進行隱藏,將分支語句的判斷條件轉換為第一自定義函數;第一自定義函數的一參數表示當前轉換的分支語句的隨機列表,另一參數表示當前轉換的分支語句在源程序的唯一標識;
所述第一自定義函數可以表示如下:
cfQuery(L(s),i(s));
其中,L(s)表示當前轉換的分支語句的隨機列表,i(s)表示當前轉換的分支語句在源程序的唯一標識。
3.如權利要求1所述的程序控制流混淆方法,其特征在于,所述隨機列表表示原程序中所有變量形成的隨機列表;隨機列表中的變量包括比較運算符左右兩個操作數;控制流矩陣中比較運算符左右兩個操作數的標識指向隨機列表中比較運算符左右兩個操作數。
4.如權利要求3所述的程序控制流混淆方法,其特征在于,所述控制流矩陣M以多元組的形式表示:
第一自定義函數,M={i(s),iop1,iop2,op};
第二自定義函數,M={i(s),res};
第三自定義函數,M={i(s),iop1,iop2,op};
其中,i(s)表示轉換的程序語句在原程序中的唯一標識,iop1和iop2表示轉換的語句在原程序中的左右操作數的標識,op表示轉換的程序語句在原程序中的計算的操作符,res表示轉換的偽分支語句的判斷條件返回的評估結果,轉換的程序語句在原程序中的唯一標識用轉換的程序語句在原程序中的行號表示。
5.如權利要求1所述的程序控制流混淆方法,其特征在于,所述第二自定義函數的一參數表示當前分支語句的隨機列表,另一參數表示當前轉換的分支語句在源程序的唯一標識;
所述第二自定義函數表示如下:
cfQuery(L(s),i(s));
其中,L(s)表示當前轉換的分支語句的隨機列表,i(s)表示當前轉換的分支語句在源程序的唯一標識;
所述第三自定義函數的一參數表示當前賦值語句的隨機列表,另一參數表示當前轉換的賦值語句在源程序的唯一標識;
所述第三自定義函數表示:
cfQuery(L(s),i(s));
其中,L(s)表示當前轉換的分支語句的隨機列表,i(s)表示當前轉換的分支語句在源程序的唯一標識。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安電子科技大學,未經西安電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010193086.X/1.html,轉載請聲明來源鉆瓜專利網。





