[發明專利]Java類對象的解擾運行方法、加擾形成方法及其裝置有效
| 申請號: | 201310069530.7 | 申請日: | 2013-03-05 |
| 公開(公告)號: | CN103150494A | 公開(公告)日: | 2013-06-12 |
| 發明(設計)人: | 蘇博 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14 |
| 代理公司: | 北京同立鈞成知識產權代理有限公司 11205 | 代理人: | 劉芳 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | java 對象 運行 方法 形成 及其 裝置 | ||
技術領域
本發明實施例涉及計算機技術,尤其涉及一種Java類對象的解擾運行方法、加擾形成方法及其裝置。
背景技術
Java是一種跨平臺的、解釋型語言。Oracle提供的Java開發工具包將Java源代碼編譯成為類(Class)文件(即Java字節碼),由Java虛擬機負責對類文件進行解釋執行。與本地目標代碼不同,類文件中仍然保留了方法名稱、變量名稱,并且通過這些名稱來訪問變量和方法,這些符號往往帶有許多語義信息。因此,對類文件進行反編譯就顯得比較容易。目前,市場上有許多Java的反編譯工具,有免費的,也有商用的,還有的是開放源代碼的。這些工具都能夠從類文件生成高質量源代碼。所以,如何保護Java程序就變成了一個非常重要的挑戰。
字節碼混淆技術是保護Java反向工程的最常用的方式之一。字節碼混淆主要是通過將定義的類、變量、方法和包的名字改為無意義的字符串、使用非法的字符代替變量符號和在軟件中添加一些無關的指令等手段來增加反編譯和對反編譯后源代碼閱讀的難度。自定義類加載器對類文件進行加密是保護Java反向工程的另一種常用的方法。自定義類加載器是指首先將類文件進行加密處理,然后自己編寫一個Java類裝載器在類文件裝載時再進行解密處理。
采用字節碼混淆技術,在進行讀取Java日志文件時,通常會記錄異常的堆棧和日志記錄的類和方法,如果混淆之后日志中的類和方法會變成不讀的名稱,會大大降低Java問題的定位效率。在Java開發過程中使用的Spring等動態代理軟件包,很多關鍵內容全都寫在了可擴展標識語言(eXtensible?Markup?Language,簡稱XML)配置文件中,如果單獨對代碼進行混淆,Spring項目就會因為無法認出XML里的關鍵字段值而無法正常使用了。而采用自定義類加載器對類文件進行加密和解密時,雖然經過加密的類文件無法被反編譯,但自定義的類加載器本身卻不能防止被反編譯。因此,加密過的類文件仍然是不安全的。使用自定義類加載器進行加密的技術使用范圍具有局限性,在網絡和開放服務網關主動(Open?Service?Gateway?Initiative,簡稱OSGI)環境等無法定義三方組件類加載器的場景不適用,并且對整個類文件進行加密,在解密時效率比較低。
發明內容
本發明實施例提供一種Java類對象的解擾運行方法、加擾形成方法及其裝置,以實現了不更改運行期間類的結構,方便根據日志定位問題,不限制三方組件的適用,不限制系統的類加載器的設計,并且對類文件還原速度快,以實現有效的反編譯保護。
第一方面,本發明實施例提供一種Java類對象的解擾運行方法,包括:
通過Java虛擬機加載代理實例;
通過Java虛擬機初始化類加載器;
針對字節碼格式的加擾的Java類對象,根據加擾的Java類對象的加擾清單的加擾信息,采用所述代理實例對待執行的加擾的Java類對象,以字節為單位進行格式轉換,以形成解擾的Java類對象;
通過類加載器運行所述解擾的Java類對象。
在第一方面的第一種可能的實現方式中,針對字節碼格式的加擾的Java類對象,采用所述代理實例對待執行的加擾的Java類對象,以字節為單位進行格式轉換,以形成解擾的Java類對象包括:
針對字節碼格式的所述加擾的Java類對象,根據加擾的Java類對象的加擾清單,采用所述代理實例將所述加擾的Java類對象中的擾碼字節清除,和/或以字節為單位調整所述加擾的Java類對象中數據項字節的順序,以形成解擾的Java類對象。
根據第一方面,在第一方面的第二種可能的實現方式中,通過Java虛擬機加載代理實例包括:
通過Java虛擬機讀取包含所述代理實例的函數的代理類對象;
當識別到所述代理類對象的屬性指示所述代理類對象先于主函數執行時,加載所述代理實例,運行所述代理類對象。
根據第一方面,在第一方面的第三種可能的實現方式中,在根據加擾的Java類對象的加擾清單的加擾信息,采用所述代理實例對待執行的加擾的Java類對象,以字節為單位進行格式轉換之前,還包括:
采用C++語言或Java語言對所述加擾清單中的加擾信息進行解碼;
采用C++語言或Java語言從解碼后的加擾信息中去除擾碼。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310069530.7/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種木馬掃描方法及木馬掃描裝置
- 下一篇:一種鏟刀





