[發明專利]一種編程語言代碼動態混淆方法及系統在審
| 申請號: | 202210575389.7 | 申請日: | 2022-05-25 |
| 公開(公告)號: | CN114968206A | 公開(公告)日: | 2022-08-30 |
| 發明(設計)人: | 趙振江;張昊;相金明 | 申請(專利權)人: | 山東國子軟件股份有限公司 |
| 主分類號: | G06F8/30 | 分類號: | G06F8/30;G06F21/14 |
| 代理公司: | 濟南圣達知識產權代理有限公司 37221 | 代理人: | 董雪 |
| 地址: | 250101 山東省濟南市高新*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 編程 語言 代碼 動態 混淆 方法 系統 | ||
1.一種編程語言代碼動態混淆方法,其特征在于,包括:
對原始編程語言進行代碼壓縮,得到第一編程代碼;
讀取所得到的第一編程代碼中的字符,構建混淆函數和隨機函數;
在所構建的混淆函數中追加混淆注釋,得到第二編程代碼;
讀取所述第一編程代碼中字符的二進制值,基于所構建的隨機函數得到混淆代碼;
將所得到的混淆代碼追加到所述第二編程代碼中,得到混淆匿名函數;
根據所得到的混淆匿名函數和混淆代碼,返回所述第一編程代碼中的字符,還原原始編程語言。
2.如權利要求1中所述的一種編程語言代碼動態混淆方法,其特征在于,通過JavaScript代碼壓縮技術進行原始編程語言的代碼壓縮,采用JavaScript代碼替換原始編程語言代碼中的回車符和制表符,得到第一編程代碼。
3.如權利要求1中所述的一種編程語言代碼動態混淆方法,其特征在于,讀取所述第一編程代碼中所有的字符,根據所讀取字符的數量創建混淆函數,基于GUID字符壓縮得到8位字符長度的隨機字符串,構建隨機函數;基于所得到的隨機函數,在混淆函數中追加混淆注釋,得到第二編程代碼。
4.如權利要求3中所述的一種編程語言代碼動態混淆方法,其特征在于,所述混淆注釋為使用GUID字符串壓縮所得到的8位長度的隨機字符串用多行注釋符包裹后所得到的。
5.如權利要求1中所述的一種編程語言代碼動態混淆方法,其特征在于,讀取所述第一編程代碼中所有字符的二進制值,對二進制值與隨機生成的整數值做加和運算,形成新的整數值;對所形成的新的整數值進行隨機函數綁定,通過隨機函數追加用于對所得到的新的整數值還原二進制值的運算表達式,得到混淆代碼。
6.如權利要求5中所述的一種編程語言代碼動態混淆方法,其特征在于,將所得到的混淆代碼追加到所述第二編程代碼中,得到String.fromCharCode混淆匿名函數,在混淆函數中追加混淆后的有效期邏輯代碼。
7.如權利要求1中所述的一種編程語言代碼動態混淆方法,其特征在于,將混淆后的第二編程代碼返回瀏覽器,基于混淆代碼中的String.fromCharCode函數,返回第一編程代碼中二進制值所對應的字符,在瀏覽器端還原原始編程語言。
8.一種編程語言代碼動態混淆系統,其特征在于,包括:
獲取模塊,其被配置為對原始編程語言進行代碼壓縮,得到第一編程代碼;
構建模塊,其被配置為讀取所得到的第一編程代碼中的字符,構建混淆函數和隨機函數;
匿名模塊,其被配置為在所構建的混淆函數中追加混淆注釋,得到第二編程代碼;讀取所述第一編程代碼中字符的二進制值,基于所構建的隨機函數得到混淆代碼;將所得到的混淆代碼追加到所述第二編程代碼中,得到混淆匿名函數;
混淆模塊,其被配置為根據所得到的混淆匿名函數和混淆代碼,返回所述第一編程代碼中的字符,還原原始編程語言。
9.一種計算機可讀存儲介質,其上存儲有程序,其特征在于,該程序被處理器執行時實現如權利要求1-7中任一項所述的編程語言代碼動態混淆方法中的步驟。
10.一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的程序,其特征在于,所述處理器執行所述程序時實現如權利要求1-7中任一項所述的編程語言代碼動態混淆方法中的步驟。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于山東國子軟件股份有限公司,未經山東國子軟件股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210575389.7/1.html,轉載請聲明來源鉆瓜專利網。





