[發明專利]Java反編譯的實現方法、系統、設備及存儲介質在審
| 申請號: | 202010516158.X | 申請日: | 2020-06-09 |
| 公開(公告)號: | CN111666095A | 公開(公告)日: | 2020-09-15 |
| 發明(設計)人: | 馮殿龍 | 申請(專利權)人: | 山東健康醫療大數據有限公司 |
| 主分類號: | G06F8/656 | 分類號: | G06F8/656 |
| 代理公司: | 濟南信達專利事務所有限公司 37100 | 代理人: | 孫園園 |
| 地址: | 250117 山東省濟南市槐*** | 國省代碼: | 山東;37 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | java 反編譯 實現 方法 系統 設備 存儲 介質 | ||
本發明公開了一種Java反編譯的實現方法、系統、設備及存儲介質,屬于Java編譯領域,本發明要解決的技術問題為如何利用Class文件實現Java開源的反編譯,采用的技術方案為:該方法是對Class文件進行模塊化拆分后,在對Class文件解析、切割、轉換,最終映射到數據模型,并轉換為Java源代碼。該系統包括數據模型模塊、文件解析模塊、類型轉換模塊,源代碼生產模塊,數據模型模塊用于創建一個與Class文件中的各種表結構相映射的數據模型,通過創建對應的數據模型實體類與表結構進行映射;文件解析模塊用于對讀取Class文件轉換成的十六進制字符串進行切割,將切割到的數據填充到數據模型中;類型轉換模塊用于將字節碼代號轉換為字節碼指令。
技術領域
本發明涉及Java編譯領域,具體地說是一種Java反編譯的實現方法、系統、設備及存儲介質。
背景技術
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。Java具有簡單性、面向對象、分布式、健壯性、安全性、平臺獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
Java作為一門古老且成熟的計算機高級語言,其運行機制是Java代碼編譯為二進制文件的Class文件,運行在JVM上。如果獲取到Class文件,則可以通過反編譯來獲取Java源代碼。
Class文件全名稱為Java Class文件,主要在平臺無關性和網絡移動性方面使Java更適合網絡。它在平臺無關性方面的任務是:為Java程序提供獨立于底層主機平臺的二進制形式的服務。該文件打破了C或者C++等語言所遵循的傳統,使用這些傳統語言寫的程序通常首先被編譯,然后被連接成單獨的、專門支持特定硬件平臺和操作系統的二進制文件。故如何利用Class文件實現Java開源的反編譯是目前亟待解決的技術問題。
發明內容
本發明的技術任務是提供一種Java反編譯的實現方法、系統、設備及存儲介質,來解決如何利用Class文件實現Java開源的反編譯的問題。
本發明的技術任務是按以下方式實現的,一種Java反編譯的實現方法,該方法是對Class文件進行模塊化拆分后,在對Class文件解析、切割、轉換,最終映射到數據模型,并轉換為Java源代碼;具體如下:
S1、創建數據模型:創建一個與Class文件中的各種表結構相映射的數據模型,通過創建對應的數據模型實體類與表結構進行映射;
S2、Class文件解析:對讀取Class文件轉換成的十六進制字符串進行切割,將切割到的數據填充到數據模型中;每個字段根據所屬的無符號數類型進行切割;
S3、類型轉換:將字節碼代號轉換為字節碼指令,字節碼指令包括方法調用、對象創建、參數傳遞、邏輯語句和異常捕獲;其中,字節碼代號是指Class文件中程序指令;
S4、生成源代碼:將構造好的數據模型,生成Java源代碼;Java源代碼中所包含的類(接口)全限定名、類中所有方法名和類型、類中所有字段名和類型、字符串常量、靜態參數名的信息全部存放于常量池中,在構造Java代碼的過程中,直接根據tag去常量池中查詢對應的值。
作為優選,所述步驟S1中表結構包括最外層的Class文件表、常量池表、字段表、方法表和異常表。
作為優選,所述步驟S2中對字符串進行切割具體為:創建一個靜態指針,指向切割字符串的start位置,每次切割length長度后,對指針進行初始化,即start=start+length;
對數據進行切割時,則調用自定義方法cutString(int len)即可。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于山東健康醫療大數據有限公司,未經山東健康醫療大數據有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010516158.X/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種基于刮膠設備制作固體熒光膜片的工藝
- 下一篇:一種干電極心電圖檢測儀





