[发明专利]Java反编译的实现方法、系统、设备及存储介质在审
申请号: | 202010516158.X | 申请日: | 2020-06-09 |
公开(公告)号: | CN111666095A | 公开(公告)日: | 2020-09-15 |
发明(设计)人: | 冯殿龙 | 申请(专利权)人: | 山东健康医疗大数据有限公司 |
主分类号: | G06F8/656 | 分类号: | G06F8/656 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 孙园园 |
地址: | 250117 山东省济南市槐*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | java 反编译 实现 方法 系统 设备 存储 介质 | ||
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数据类型的映射转换。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东健康医疗大数据有限公司,未经山东健康医疗大数据有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010516158.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于刮胶设备制作固体荧光膜片的工艺
- 下一篇:一种干电极心电图检测仪