[发明专利]一种Java字节码修改方法与装置在审
| 申请号: | 202111148367.4 | 申请日: | 2021-09-29 |
| 公开(公告)号: | CN113867733A | 公开(公告)日: | 2021-12-31 |
| 发明(设计)人: | 万金利 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/53 |
| 代理公司: | 深圳市六加知识产权代理有限公司 44372 | 代理人: | 许铨芬 |
| 地址: | 430000 湖北省武*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 java 字节 修改 方法 装置 | ||
本发明提出了一种Java字节码修改方法与装置,既降低搭建编译环境的复杂度,又不需要开发人员了解字节码协议的细节,它的输入是两个字节码文件:待修改的字节码文件,目标字节码文件。工具内部会解析并比较两个字节码文件,然后将目标字节码文件的不同之处增量合并到待修改的字节码文件,最终输出修改后的字节码文件。
【技术领域】
本发明涉及字节码修改领域,具体为一种Java字节码修改方法与装置。
【背景技术】
Java开发人员在日常开发和维护过程中,需要对字节码进行修改,对于字节码的修改,目前主流的有两种方式。
第一种方式修改字节码文件对应的原始的完整的源码文件,将其编译生成字节码文件后进行替换,这种方式的需要开发人员能够获取原始的完整的源码文件及其所依赖的所有库文件,然后搭建编译环境进行编译。
第二种方式是使用一些字节码修改工具直接对字节码文件进行修改,Java作为开源语言,其字节码文件的协议也是公开的,可以在官方网站查到,故可以写工具参考协议直接对字节码文件的数据进行修改,这类工具目前常见的有ASM、BCEL、Javassist。这种方式搭建编译环境比较简单,只需要Java开发人员创建一个Java工程,在工程使用工具的API加载字节码文件,并对其进行修改,然后保存导出。
第一种方式是目前最常用的一种方式,缺点是如果字节码对应的源码文件比较大的话,搭建编译环境会比较繁琐,需要引用其所有的依赖文件才可编译。另外,字节码对应的源码文件有时无法获得,需要开发人员通过反编译工具从字节码文件反编译得到,反编译出来的源文件再编译又往往会有编译问题,需要凭经验进行修复,文件越大,出现编译问题的概率就越大。第二种方式搭建编译环境很简单,缺点是需要开发人员对字节码的协议和工具API非常熟悉,这个要求比较高。
因此,需要一种新的字节码修改方式,能够综合上述两种方式的优点,既降低搭建编译环境的复杂度,又不需要开发人员了解字节码协议的细节,从而提高修改字节码的效率。
【发明内容】
针对以上缺陷或改进需求,为了降低搭建编译环境的复杂度,提升开发人员维护修改的效率,本发明提供一种新的字节码修改方式,既降低搭建编译环境的复杂度,又不需要开发人员了解字节码协议的细节,它的输入是两个字节码文件:待修改的字节码文件,目标字节码文件。工具内部会解析并比较两个字节码文件,然后将目标字节码文件的不同之处增量合并到待修改的字节码文件,最终输出修改后的字节码文件。
为实现上述目的,本发明采用如下技术方案:
第一方面,一种Java字节码修改方法,如下:
将待修改的字节码文件与目标字节码文件按照字节码协议分别解析成待修改数据对象ClassFile与目标数据对象ClassFile,将目标数据对象ClassFile中的常量池添加到待修改数据对象ClassFile,将目标数据对象ClassFile中新增的成员对象依次添加到待修改数据对象ClassFile中,将目标数据对象ClassFile中新增的方法依次添加到待修改数据对象ClassFile中,导出修改后的待修改数据对象ClassFile并按照字节码协议保存为字节码文件。
优选的,遍历目标数据对象ClassFile的常量池,将所述常量池分批添加到待修改数据对象ClassFile中。
优选的,所述目标数据对象ClassFile中的常量池之间有引用关系,被引用的常量池需要先从目标数据对象ClassFile中添加到待修改数据对象ClassFile中,得到被引用常量池在待修改数据对象ClassFile中的位置,更新目标数据对象ClassFile中引用常量池的引用位置,再将所述更新后的引用常量池从目标数据对象ClassFile添加到待修改数据对象ClassFile中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111148367.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种炼焦煤梯级预热工艺及设备
- 下一篇:隔离驱动电路及隔离驱动方法





