[發明專利]java代碼混淆方法、系統、計算機設備及存儲介質在審
| 申請號: | 202111389699.1 | 申請日: | 2021-11-22 |
| 公開(公告)號: | CN114090965A | 公開(公告)日: | 2022-02-25 |
| 發明(設計)人: | 鄧衛平;梅雨;孫祿明 | 申請(專利權)人: | 全景智聯(武漢)科技有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14 |
| 代理公司: | 廣東奧益專利代理事務所(普通合伙) 44842 | 代理人: | 田樹杰 |
| 地址: | 430000 湖北省武漢市東湖新*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | java 代碼 混淆 方法 系統 計算機 設備 存儲 介質 | ||
本發明涉及計算機技術領域,具體涉及一種java代碼混淆方法、系統、計算機設備及存儲介質。該方法包括:獲取待混淆文件,判斷所述待混淆文件類型,當所述待混淆文件為jar包時,解析所述jar包,定位classes文件夾所在位置,讀取配置文件并進行混淆替換,生成新的jar包;當所述待混淆文件為編譯階段的java代碼時,在java代碼中添加混淆工具依賴,在編譯時啟用混淆工具進行混淆,生成混淆后的jar包次導入或導出結果的文件下載地址,以根據下載地址下載導入或導出結果文件。本發明能夠自定義選擇混淆方案、混淆范圍,且具有字符串加密、確保混淆后的代碼功能邏輯不受影響,極大提高了代碼閱讀難度,實現了代碼的安全性,且用戶具有很高的可配置性。
技術領域
本發明涉及計算機技術領域,具體涉及一種java代碼混淆方法、系統、計算機設備及存儲介質。
背景技術
Java是一種C++類型的基于對象的編程語言。它有著廣泛的使用性,是目前較為流行的編程語言,因為Java平臺可以被安裝在大量的各種不同可應用設備上,被廣泛用于web、app和服務器開發。
在java代碼應用時,如果將編譯后的jar包直接放到服務器上,那么一旦服務器被黑、或者在上傳jar包的過程中文件遭到泄漏,不法分子很容易通過逆向工程獲取源碼,推測代碼邏輯,從而找到系統漏洞,進行攻擊,所以對源碼進行保護是業界的共識。但是,目前沒有比較有效的java代碼保護方法。
發明內容
為解決現有技術中缺乏對有效的java代碼有效保護的問題,本發明提供了一種java代碼混淆方法、系統、計算機設備及存儲介質,用戶通過自定義選擇混淆方案、混淆范圍,且具有字符串加密、確保混淆后的代碼功能邏輯不受影響,極大提高了代碼閱讀難度,實現了代碼的安全性,且用戶具有很高的可配置性。
本發明采用以下技術方案實現:
一種java代碼混淆方法,該方法包括:
獲取待混淆文件,其中,所述待混淆文件為jar包或編譯階段的java代碼;
判斷所述待混淆文件類型,當所述待混淆文件為jar包時,解析所述jar包,定位classes文件夾所在位置,讀取配置文件并進行混淆替換,生成新的jar包;
當所述待混淆文件為編譯階段的java代碼時,在java代碼中添加混淆工具依賴,在編譯時啟用混淆工具進行混淆,生成混淆后的jar包。
作為本發明的進一步方案,當所述待混淆文件為jar包時,jar包進行混淆的方法還包括:
獲取混淆規則,根據讀取的配置文件確定待混淆的類文件及所述類文件的引用樹;
根據混淆規則對所述類文件的類名、方法名、變量名進行替換,生成新的jar包。
進一步的,在對所述類文件的類名、方法名、變量名進行替換時,還通過JVM語法解析器對引用樹進行遍歷,使所述引用樹的相關引用變量保持替換前后一致。
進一步的,解析所述jar包時,還包括檢測并移除代碼中無用的類、字段、方法和特性;讀取配置文件并進行混淆替換時,還包括使用配置文件中配置的字符對類、方法、字段進行重命名,通過JVM分析類、方法、字段的引用鏈,將所有引用了被混淆的類、方法、字段的對應位置也進行相同的名稱替換,并對混淆的類加入冗余字段及冗余方法,完成混淆替換。
作為本發明的進一步方案,當所述待混淆文件為編譯階段的java代碼時,還包括:
將添加的混淆工具的生命周期設置為編譯時運行,并通過讀取配置文件選擇混淆字符、確定不被混淆類文件以及獲取混淆規則;
通過混淆規則對待混淆的類、方法上添加混淆注解;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于全景智聯(武漢)科技有限公司,未經全景智聯(武漢)科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111389699.1/2.html,轉載請聲明來源鉆瓜專利網。





