[發明專利]一種保護JAVA可執行程序的方法及設備有效
| 申請號: | 201310284248.0 | 申請日: | 2013-07-09 |
| 公開(公告)號: | CN103413073A | 公開(公告)日: | 2013-11-27 |
| 發明(設計)人: | 不公告發明人 | 申請(專利權)人: | 北京深思數盾科技有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100872 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 保護 java 可執行 程序 方法 設備 | ||
1.?一種保護JAVA可執行程序的方法,其特征在于,包括如下步驟:
步驟1:創建本地動態連接庫文件;
步驟2:枚舉受保護的JAVA可執行程序中的.class文件;
步驟3:分析所述.class文件中的JVM代碼,然后選取JVM代碼中的代碼片段;
步驟4:將選中的所述代碼片段從.class文件中抽去,在所述代碼片段的原位置處替換成對本地方法的調用;
步驟5:在所述本地動態鏈接庫中,生成本地代碼導出函數,所述本地代碼導出函數的名稱與所述本地方法對應,并且在所述本地代碼導出函數中逐條模擬所述代碼片段中的指令,并使所述本地代碼導出函數實現所述抽取出的代碼片段的相同的功能;
步驟6:返回步驟2,繼續枚舉,直至結束。
2.?根據權利要求1所述的方法,其特征在于,所述步驟1中的本地動態鏈接庫文件名稱是隨機的,或者步驟4中本地方法名稱是隨機的。
3.?根據權利要求1所述的方法,其特征在于,按照單入單出和堆棧平衡原則自動抽取代碼片段。
4.?根據權利要求1所述的方法,其特征在于,步驟5中逐條模擬代碼片段中的指令包括對訪問類、對象的指令使用JNI模擬。
5.?根據權利要求1所述的方法,其特征在于,步驟5中逐條模擬代碼片段中的指令的算術和控制轉移使用本地代碼模擬。
6.?一種保護JAVA可執行程序的設備,其特征在于,包括:
枚舉模塊,用于枚舉受保護的JAVA軟件中的.class文件;
分析模塊,用于分析.class文件中的JVM代碼,根據單入單出和堆棧平衡的原則選取JVM代碼中的代碼片段;
替換代碼模塊,將選中的所述代碼片段從所述.class文件中抽去,在所述代碼片段的原位置處替換成對本地方法的調用;
生成本地代碼模塊,用于生成本地代碼導出函數,實現所述抽取出的代碼片段的相同功能。
7.?根據權利要求6所述的保護JAVA可執行程序的設備,其特征在于,還包括:加密模塊,用于對本地代碼生成模塊進行加密。
8.?根據權利要求7所述的保護JAVA可執行程序的設備,其特征在于,在受保護的可執行程序的運行時進行解密。
9.?根據權利要求8所述的保護JAVA可執行程序的設備,其特征在于,解密的代碼和相關的密鑰存放在所述本地代碼導出函數中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京深思數盾科技有限公司,未經北京深思數盾科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310284248.0/1.html,轉載請聲明來源鉆瓜專利網。





