CN111666095A - Java反编译的实现方法、系统、设备及存储介质 - Google Patents

Java反编译的实现方法、系统、设备及存储介质 Download PDF

Info

Publication number
CN111666095A
CN111666095A CN202010516158.XA CN202010516158A CN111666095A CN 111666095 A CN111666095 A CN 111666095A CN 202010516158 A CN202010516158 A CN 202010516158A CN 111666095 A CN111666095 A CN 111666095A
Authority
CN
China
Prior art keywords
class
java
data model
code
type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010516158.XA
Other languages
English (en)
Inventor
冯殿龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Health Medical Big Data Co ltd
Original Assignee
Shandong Health Medical Big Data Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Health Medical Big Data Co ltd filed Critical Shandong Health Medical Big Data Co ltd
Priority to CN202010516158.XA priority Critical patent/CN111666095A/zh
Publication of CN111666095A publication Critical patent/CN111666095A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Abstract

本发明公开了一种Java反编译的实现方法、系统、设备及存储介质,属于Java编译领域,本发明要解决的技术问题为如何利用Class文件实现Java开源的反编译,采用的技术方案为:该方法是对Class文件进行模块化拆分后,在对Class文件解析、切割、转换,最终映射到数据模型,并转换为Java源代码。该系统包括数据模型模块、文件解析模块、类型转换模块,源代码生产模块,数据模型模块用于创建一个与Class文件中的各种表结构相映射的数据模型,通过创建对应的数据模型实体类与表结构进行映射;文件解析模块用于对读取Class文件转换成的十六进制字符串进行切割,将切割到的数据填充到数据模型中;类型转换模块用于将字节码代号转换为字节码指令。

Description

Java反编译的实现方法、系统、设备及存储介质
技术领域
本发明涉及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)即可。
作为优选,所述步骤S3中类型转换具体为:
字节码十六进制代号到具体字节码指令的映射转换;
类、属性、方法的访问标识代号与Java源码的映射转换;
参数类型、返回值类型代号与Java数据类型的映射转换。
更优地,所述步骤S4中生成源代码具体如下:
权限定名;
包引用;
类的声明:包括集成类和实现类;
类的所有字段:包括访问标识、参数类型、参数名称、泛型类型;
类的所有方法:包括初始化方法、构造方法、抽象方法、native方法、有方法体的方法(访问标识、返回值类型、方法名、参数名和类型、异常抛出)。
一种Java反编译的系统,该系统包括,
数据模型模块,用于创建一个与Class文件中的各种表结构相映射的数据模型,通过创建对应的数据模型实体类与表结构进行映射;其中,表结构包括最外层的Class文件表、常量池表、字段表、方法表和异常表;
文件解析模块,用于对读取Class文件转换成的十六进制字符串进行切割,将切割到的数据填充到数据模型中;每个字段根据所属的无符号数类型进行切割;其中,对字符串进行切割具体为:创建一个静态指针,指向切割字符串的start位置,每次切割length长度后,对指针进行初始化,即start=start+length;
对数据进行切割时,则调用自定义方法cutString(int len)即可;
类型转换模块,用于将字节码代号转换为字节码指令,字节码指令包括方法调用、对象创建、参数传递、逻辑语句和异常捕获;其中,字节码代号是指Class文件中程序指令;
源代码生成模块,用于将构造好的数据模型,生成Java源代码;Java源代码中所包含的类(接口)全限定名、类中所有方法名和类型、类中所有字段名和类型、字符串常量、静态参数名的信息全部存放于常量池中,在构造Java代码的过程中,直接根据tag去常量池中查询对应的值。
作为优选,所述类型转换模块包括:
字节码十六进制代号到具体字节码指令的映射转换;
类、属性、方法的访问标识代号与Java源码的映射转换;
参数类型、返回值类型代号与Java数据类型的映射转换。
作为优选,所述源代码生成模块工作过程如下:
权限定名;
包引用;
类的声明:包括集成类和实现类;
类的所有字段:包括访问标识、参数类型、参数名称、泛型类型;
类的所有方法:包括初始化方法、构造方法、抽象方法、native方法、有方法体的方法(访问标识、返回值类型、方法名、参数名和类型、异常抛出)。
一种电子设备,包括:存储器和至少一个处理器;
其中,所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上述的Java反编译的实现方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行时,实现如上述的Java反编译的实现方法。
其中,整个Class文件就是一张表,表中的字段有:魔数、虚拟机的次版本、主版本、常量池的大小、常量池、访问标识、当前类、父类、实现的接口数量、接口集合、字段表数量、字段表集合、方法表数量、方法表集合、属性表数量、属性表集合。其中,魔数、主次版本、常量池大小、访问标识、当前类、父类、表集合数量等都是无符号数。常量池、字段表集合、方法表集合、属性表集合等都是表结构,有的表结构中的字段又嵌套了其他的表结构,用一句话总结来说:Class文件的数据结构是一种表结构的嵌套。
本发明的Java反编译的实现方法、系统、设备及存储介质具有以下优点:
(一)本发明了提供了一种对Class文件解析、转换的过程,最终映射到数据模型,并转换为Java源代码,并提供了文件解析模块和类型转化模块对Class二进制文件进行切割和转换,同时提供了模块化拆分,实现模块间的交互,扩展等功能;
(二)本发明是基于Java语言进行研发,主要使用JDK自带工具类,引用了较少的第三方依赖,性能较好;
(三)本发明的数据模型为class文件的结构的完全映射,并且针对某一模块,有对应的数据模型,提升了阅读性;
(四)本发明支持多数组引用,并利用递归的方法进行反编译,提升了适配程度;
(五)本发明的类型转换模块的可扩展性较高;
(六)本发明生成的Java源代码格式化程度高,提升了阅读性。
附图说明
下面结合附图对本发明进一步说明。
附图1为Java反编译的实现方法的流程框图;
附图2为Java反编译的系统的结构框图;
附图3为常量池数据模型的界面截图。
具体实施方式
参照说明书附图和具体实施例对本发明的Java反编译的实现方法、系统、设备及存储介质作以下详细地说明。
实施例1:
本发明的Java反编译的实现方法,该方法是对Class文件进行模块化拆分后,在对Class文件解析、切割、转换,最终映射到数据模型,并转换为Java源代码;如附图1所示,具体如下:
S1、创建数据模型:创建一个与Class文件中的各种表结构相映射的数据模型,通过创建对应的数据模型实体类与表结构进行映射;其中,表结构包括最外层的Class文件表、常量池表、字段表、方法表和异常表。
S2、Class文件解析:对读取Class文件转换成的十六进制字符串进行切割,将切割到的数据填充到数据模型中;每个字段根据所属的无符号数类型进行切割;
其中,对字符串进行切割具体为:创建一个静态指针,指向切割字符串的start位置,每次切割length长度后,对指针进行初始化,即start=start+length;
对数据进行切割时,则调用自定义方法cutString(int len)即可。
S3、类型转换:将字节码代号转换为字节码指令,字节码指令包括方法调用、对象创建、参数传递、逻辑语句和异常捕获;其中,字节码代号是指Class文件中程序指令;其中,类型转换具体为:
①、字节码十六进制代号到具体字节码指令的映射转换;
②、类、属性、方法的访问标识代号与Java源码的映射转换;
③、参数类型、返回值类型代号与Java数据类型的映射转换。
S4、生成源代码:将构造好的数据模型,生成Java源代码;Java源代码中所包含的类(接口)全限定名、类中所有方法名和类型、类中所有字段名和类型、字符串常量、静态参数名的信息全部存放于常量池中,在构造Java代码的过程中,直接根据tag去常量池中查询对应的值;其中,生成源代码具体如下:
S401、权限定名;
S402、包引用;
S403、类的声明:包括集成类和实现类;
S404、类的所有字段:包括访问标识、参数类型、参数名称、泛型类型;
S405、类的所有方法:包括初始化方法、构造方法、抽象方法、native方法、有方法体的方法(访问标识、返回值类型、方法名、参数名和类型、异常抛出)。
实施例2:
如附图2所示,本发明的Java反编译的系统,该系统包括,
数据模型模块,用于创建一个与Class文件中的各种表结构相映射的数据模型,通过创建对应的数据模型实体类与表结构进行映射;其中,表结构包括最外层的Class文件表、常量池表、字段表、方法表和异常表;量池模型如附图3所示;具体实体类的字段具体为:
Figure BDA0002530199660000051
Figure BDA0002530199660000061
文件解析模块,用于对读取Class文件转换成的十六进制字符串进行切割,将切割到的数据填充到数据模型中;每个字段根据所属的无符号数类型进行切割;其中,对字符串进行切割具体为:创建一个静态指针,指向切割字符串的start位置,每次切割length长度后,对指针进行初始化,即start=start+length;
对数据进行切割时,则调用自定义方法cutString(int len)即可;
数据填充的代码如下:
Figure BDA0002530199660000062
类型转换模块,用于将字节码代号转换为字节码指令,字节码指令包括方法调用、对象创建、参数传递、逻辑语句和异常捕获;其中,字节码代号是指Class文件中程序指令;类型转换模块包括:
①、字节码十六进制代号到具体字节码指令的映射转换;
②、类、属性、方法的访问标识代号与Java源码的映射转换;
③参数类型、返回值类型代号与Java数据类型的映射转换。
建立映射转换后,在代码调用时便可以直接使用这种转换关系,极大简化了源代码生成模块的逻辑。
源代码生成模块,用于将构造好的数据模型,生成Java源代码;Java源代码中所包含的类(接口)全限定名、类中所有方法名和类型、类中所有字段名和类型、字符串常量、静态参数名的信息全部存放于常量池中,在构造Java代码的过程中,直接根据tag去常量池中查询对应的值。源代码生成模块工作过程如下:
权限定名;
包引用;
类的声明:包括集成类和实现类;
类的所有字段:包括访问标识、参数类型、参数名称、泛型类型;
类的所有方法:包括初始化方法、构造方法、抽象方法、native方法、有方法体的方法(访问标识、返回值类型、方法名、参数名和类型、异常抛出)。
源代码生成模块需要进行字节码指令到Java代码的转换,例如字节码指令astore、ldc、bipush、sipush、load_、aload、getfield、putfield、getstatic、pop、invokespecial、invokevirtual、invokeinterface、invokestatic等等一系列字节码的逻辑转换。如invokespecial为调用超类构造方法、实例初始化方法、私有方法、getstatic为获取指定类的静态域,并将其值压入栈顶、newarray为创建一个基本类型数组,并且其引用进栈等。方法的执行无非就是对堆栈的操作,了解了各个字节码的含义以及堆栈的操作,即能够根据字节码指令转化为方法中的逻辑源代码。示例如下:
Figure BDA0002530199660000071
Figure BDA0002530199660000081
实施例3:
本发明实施例还提供了一种电子设备,包括:存储器和一个处理器;
其中,所述存储器存储计算机执行指令;
所述一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如实施例1的Java反编译的实现方法。
实施例4:
本发明实施例还提供了一种计算机可读存储介质,其中存储有多条指令,指令由处理器加载,使处理器执行本发明任一实施例中的Java反编译的实现方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RJAVA反编译的实现方法、系统、设备及存储介质M、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种Java反编译的实现方法,其特征在于,该方法是对Class文件进行模块化拆分后,在对Class文件解析、切割、转换,最终映射到数据模型,并转换为Java源代码;具体如下:
S1、创建数据模型:创建一个与Class文件中的各种表结构相映射的数据模型,通过创建对应的数据模型实体类与表结构进行映射;
S2、Class文件解析:对读取Class文件转换成的十六进制字符串进行切割,将切割到的数据填充到数据模型中;每个字段根据所属的无符号数类型进行切割;
S3、类型转换:将字节码代号转换为字节码指令,字节码指令包括方法调用、对象创建、参数传递、逻辑语句和异常捕获;其中,字节码代号是指Class文件中程序指令;
S4、生成源代码:将构造好的数据模型,生成Java源代码;Java源代码中所包含的类全限定名、类中所有方法名和类型、类中所有字段名和类型、字符串常量、静态参数名的信息全部存放于常量池中,在构造Java代码的过程中,直接根据tag去常量池中查询对应的值。
2.根据权利要求1所述的Java反编译的实现方法,其特征在于,所述步骤S1中表结构包括最外层的Class文件表、常量池表、字段表、方法表和异常表。
3.根据权利要求1所述的Java反编译的实现方法,其特征在于,所述步骤S2中对字符串进行切割具体为:创建一个静态指针,指向切割字符串的start位置,每次切割length长度后,对指针进行初始化,即start=start+length;
对数据进行切割时,则调用自定义方法cutString(int len)即可。
4.根据权利要求1所述的Java反编译的实现方法,其特征在于,所述步骤S3中类型转换具体为:
字节码十六进制代号到具体字节码指令的映射转换;
类、属性、方法的访问标识代号与Java源码的映射转换;
参数类型、返回值类型代号与Java数据类型的映射转换。
5.根据权利要求1-4中任一所述的Java反编译的实现方法,其特征在于,所述步骤S4中生成源代码具体如下:
权限定名;
包引用;
类的声明:包括集成类和实现类;
类的所有字段:包括访问标识、参数类型、参数名称、泛型类型;
类的所有方法:包括初始化方法、构造方法、抽象方法、native方法、有方法体的方法。
6.一种Java反编译的系统,其特征在于,该系统包括,
数据模型模块,用于创建一个与Class文件中的各种表结构相映射的数据模型,通过创建对应的数据模型实体类与表结构进行映射;其中,表结构包括最外层的Class文件表、常量池表、字段表、方法表和异常表;
文件解析模块,用于对读取Class文件转换成的十六进制字符串进行切割,将切割到的数据填充到数据模型中;每个字段根据所属的无符号数类型进行切割;其中,对字符串进行切割具体为:创建一个静态指针,指向切割字符串的start位置,每次切割length长度后,对指针进行初始化,即start=start+length;
对数据进行切割时,则调用自定义方法cutString(int len)即可;
类型转换模块,用于将字节码代号转换为字节码指令,字节码指令包括方法调用、对象创建、参数传递、逻辑语句和异常捕获;其中,字节码代号是指Class文件中程序指令;
源代码生成模块,用于将构造好的数据模型,生成Java源代码;Java源代码中所包含的类全限定名、类中所有方法名和类型、类中所有字段名和类型、字符串常量、静态参数名的信息全部存放于常量池中,在构造Java代码的过程中,直接根据tag去常量池中查询对应的值。
7.根据权利要求6所述的Java反编译的系统,其特征在于,所述类型转换模块包括:
字节码十六进制代号到具体字节码指令的映射转换;
类、属性、方法的访问标识代号与Java源码的映射转换;
参数类型、返回值类型代号与Java数据类型的映射转换。
8.根据权利要求6或7所述的Java反编译的系统,其特征在于,所述源代码生成模块工作过程如下:
权限定名;
包引用;
类的声明:包括集成类和实现类;
类的所有字段:包括访问标识、参数类型、参数名称、泛型类型;
类的所有方法:包括初始化方法、构造方法、抽象方法、native方法、有方法体的方法。
9.一种电子设备,其特征在于,包括:存储器和至少一个处理器;
其中,所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至5任一项所述的Java反编译的实现方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行时,实现如权利要求1至5中所述的Java反编译的实现方法。
CN202010516158.XA 2020-06-09 2020-06-09 Java反编译的实现方法、系统、设备及存储介质 Pending CN111666095A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010516158.XA CN111666095A (zh) 2020-06-09 2020-06-09 Java反编译的实现方法、系统、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010516158.XA CN111666095A (zh) 2020-06-09 2020-06-09 Java反编译的实现方法、系统、设备及存储介质

Publications (1)

Publication Number Publication Date
CN111666095A true CN111666095A (zh) 2020-09-15

Family

ID=72387011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010516158.XA Pending CN111666095A (zh) 2020-06-09 2020-06-09 Java反编译的实现方法、系统、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111666095A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113094665A (zh) * 2021-04-09 2021-07-09 每日互动股份有限公司 一种防止java程序被反编译的系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101807239A (zh) * 2010-03-29 2010-08-18 山东高效能服务器和存储研究院 一种防止源代码反编译的方法
CN108717470A (zh) * 2018-06-14 2018-10-30 南京航空航天大学 一种具有高准确度的代码片段推荐方法
CN110990019A (zh) * 2019-11-20 2020-04-10 腾讯音乐娱乐科技(深圳)有限公司 一种Java类分析方法、装置、存储介质及电子设备
CN111190603A (zh) * 2019-12-18 2020-05-22 腾讯科技(深圳)有限公司 一种隐私数据检测方法、装置和计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101807239A (zh) * 2010-03-29 2010-08-18 山东高效能服务器和存储研究院 一种防止源代码反编译的方法
CN108717470A (zh) * 2018-06-14 2018-10-30 南京航空航天大学 一种具有高准确度的代码片段推荐方法
CN110990019A (zh) * 2019-11-20 2020-04-10 腾讯音乐娱乐科技(深圳)有限公司 一种Java类分析方法、装置、存储介质及电子设备
CN111190603A (zh) * 2019-12-18 2020-05-22 腾讯科技(深圳)有限公司 一种隐私数据检测方法、装置和计算机可读存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113094665A (zh) * 2021-04-09 2021-07-09 每日互动股份有限公司 一种防止java程序被反编译的系统

Similar Documents

Publication Publication Date Title
CN106462425B (zh) 使用复常量的方法和系统
US7380242B2 (en) Compiler and software product for compiling intermediate language bytecodes into Java bytecodes
CN107924326B (zh) 对经更新的类型的迁移方法进行覆盖
US10853096B2 (en) Container-based language runtime loading an isolated method
US20040003377A1 (en) Converting byte code instructions to a new instruction set
CN112052006B (zh) 一种软件代码编译方法及系统
US7788652B2 (en) Representing type information in a compiler and programming tools framework
US7020874B2 (en) Techniques for loading class files into virtual machines
US6959430B2 (en) Specialized heaps for creation of objects in object-oriented environments
US20080065664A1 (en) Computer-implemented method, tool, and program product for more efficiently utilizing java resource bundles
US6901591B1 (en) Frameworks for invoking methods in virtual machines
CN113703779A (zh) 一种跨平台的多语言编译方法和超轻量物联网虚拟机
CN111666095A (zh) Java反编译的实现方法、系统、设备及存储介质
US7181724B2 (en) Representation of Java® data types in virtual machines
Brown et al. The Persistent Abstract Machine
US6934726B2 (en) Storing and retrieving of field descriptors in Java computing environments
US6961933B2 (en) Representation of Java data types in virtual machines
CN114741131B (zh) 动态库导出符号的隐藏方法、装置、设备及存储介质
US11243876B2 (en) Techniques for accessing off-heap memory
Stephen Design of an operating system with in-memory kernel
Mårtensson et al. Extending a Small Language with a Java Bytecode Back End
Beevi et al. MetaJC++: A flexible and automatic program transformation technique using meta framework
Miranda et al. The implementation of ada 2005 interface types in the gnat compiler
WO2003001370A2 (en) Representation of objects in a java programming environment
Miranda et al. Abstract interface types in GNAT: Conversions, discriminants, and C++

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200915