[發明專利]一種編程語言代碼動態混淆方法及系統在審
| 申請號: | 202210575389.7 | 申請日: | 2022-05-25 |
| 公開(公告)號: | CN114968206A | 公開(公告)日: | 2022-08-30 |
| 發明(設計)人: | 趙振江;張昊;相金明 | 申請(專利權)人: | 山東國子軟件股份有限公司 |
| 主分類號: | G06F8/30 | 分類號: | G06F8/30;G06F21/14 |
| 代理公司: | 濟南圣達知識產權代理有限公司 37221 | 代理人: | 董雪 |
| 地址: | 250101 山東省濟南市高新*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 編程 語言 代碼 動態 混淆 方法 系統 | ||
本公開屬于數據保護技術領域,具體涉及一種編程語言代碼動態混淆方法及系統,包括:對原始編程語言進行代碼壓縮,得到第一編程代碼;讀取所得到的第一編程代碼中的字符,構建混淆函數和隨機函數;在所構建的混淆函數中追加混淆注釋,得到第二編程代碼;讀取所述第一編程代碼中字符的二進制值,基于所構建的隨機函數得到混淆代碼;將所得到的混淆代碼追加到所述第二編程代碼中,得到混淆匿名函數;根據所得到的混淆匿名函數和混淆代碼,返回所述第一編程代碼中的字符,還原原始編程語言。
技術領域
本公開屬于數據保護技術領域,具體涉及一種編程語言代碼動態混淆方法及系統。
背景技術
本部分的陳述僅僅是提供了與本公開相關的背景技術信息,不必然構成在先技術。
編程語言在處理過程中需要把源代碼下載到瀏覽器端進行解析運行;源代碼會直接暴露給用戶,如果用戶具有編程能力或有攻擊意向的人可以通過分析源代碼中的代碼邏輯查找代碼漏洞,從而竊取關鍵數據,造成經濟損失。
據發明人了解,常用的編程語言代碼混淆技術有:
(1)編程語言代碼壓縮技術,將編程語言代碼中命名的變量、方法名進行無含義轉換,將代碼中的換行符、空格、制表符進行去除,降低代碼的體積,降低代碼的可閱讀性;其成本較低,可通過專門的解壓縮方式來提高代碼的可閱讀性;但是,無法避免相同的編程語言代碼產生相同的混淆代碼。
(2)基于證書的編程語言代碼加密技術,使用SSL證書對源代碼進行加密,瀏覽器端使用本地證書進行數據解密;數據在傳輸過程中是加密狀態,如果沒有證書,攔截后也無法獲取到源代碼;但是可通過瀏覽器提供的控制臺工具獲取到編程語言代碼,存在原始編程語言代碼泄露的風險。
(3)基于瀏覽器混淆SDK的編程語言代碼混淆技術,在瀏覽器端編寫混淆代碼解碼的代碼,通過瀏覽器下載混淆后的代碼,解碼混淆后的代碼后運行;但是無法判斷解碼混淆代碼的代碼是否也做了混淆,若解碼代碼沒有做混淆,則仍然存在原始編程語言代碼泄露的風險。
發明內容
為了解決上述問題,本公開提出了一種編程語言代碼動態混淆方法及系統,增強源代碼的變化性和隨機性,避免相同的編程語言代碼每次產生相同的混淆代碼,結合瀏覽器執行混淆后的第二編程語言代碼,提升編程語言代碼的執行效率和代碼安全性,在混淆后的代碼中注入代碼有效期,防止代碼被盜取后可以無限期的使用。
根據一些實施例,本公開的第一方案提供了一種編程語言代碼動態混淆方法,采用如下技術方案:
一種編程語言代碼動態混淆方法,包括:
對原始編程語言進行代碼壓縮,得到第一編程代碼;
讀取所得到的第一編程代碼中的字符,構建混淆函數和隨機函數;
在所構建的混淆函數中追加混淆注釋,得到第二編程代碼;
讀取所述第一編程代碼中字符的二進制值,基于所構建的隨機函數得到混淆代碼;
將所得到的混淆代碼追加到所述第二編程代碼中,得到混淆匿名函數;
根據所得到的混淆匿名函數和混淆代碼,返回所述第一編程代碼中的字符,還原原始編程語言。
作為進一步的技術限定,通過JavaScript代碼壓縮技術進行原始編程語言的代碼壓縮,采用JavaScript代碼替換原始編程語言代碼中的回車符和制表符,得到第一編程代碼。
作為進一步的技術限定,讀取所述第一編程代碼中所有的字符,根據所讀取字符的數量創建混淆函數,基于GUID字符壓縮得到8位字符長度的隨機字符串,構建隨機函數;基于所得到的隨機函數,在混淆函數中追加混淆注釋,得到第二編程代碼。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于山東國子軟件股份有限公司,未經山東國子軟件股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210575389.7/2.html,轉載請聲明來源鉆瓜專利網。





