[发明专利]一种Java字节码修改方法与装置在审
| 申请号: | 202111148367.4 | 申请日: | 2021-09-29 |
| 公开(公告)号: | CN113867733A | 公开(公告)日: | 2021-12-31 |
| 发明(设计)人: | 万金利 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/53 |
| 代理公司: | 深圳市六加知识产权代理有限公司 44372 | 代理人: | 许铨芬 |
| 地址: | 430000 湖北省武*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 java 字节 修改 方法 装置 | ||
1.一种Java字节码修改方法,其特征在于:
将待修改的字节码文件与目标字节码文件按照字节码协议分别解析成待修改数据对象ClassFile与目标数据对象ClassFile,将目标数据对象ClassFile中的常量池添加到待修改数据对象ClassFile,将目标数据对象ClassFile中新增的成员对象依次添加到待修改数据对象ClassFile中,将目标数据对象ClassFile中新增的方法依次添加到待修改数据对象ClassFile中,导出修改后的待修改数据对象ClassFile并按照字节码协议保存为字节码文件。
2.根据权利要求1所述的一种Java字节码修改方法,将目标数据对象ClassFile中的常量池分批添加到待修改数据对象ClassFile,其特征在于,遍历目标数据对象ClassFile的常量池,将所述常量池分批添加到待修改数据对象ClassFile中。
3.根据权利要求2所述的一种Java字节码修改方法,其特征在于,所述目标数据对象ClassFile中的常量池之间有引用关系,被引用的常量池需要先从目标数据对象ClassFile中添加到待修改数据对象ClassFile中,得到被引用常量池在待修改数据对象ClassFile中的位置,更新目标数据对象ClassFile中引用常量池的引用位置,再将所述更新后的引用常量池从目标数据对象ClassFile添加到待修改数据对象ClassFile中。
4.根据权利要求1所述的一种Java字节码修改方法,将目标数据对象ClassFile中新增的成员对象依次添加到待修改数据对象ClassFile中,其特征在于,遍历目标数据对象ClassFile中的成员变量,将目标数据对象ClassFile中的成员变量与待修改数据对象ClassFile中的成员变量相比较,若需要添加的成员变量在待修改数据对象ClassFile中不存在,则直接将所述成员变量添加到待修改数据对象ClassFile中;若需要添加的成员变量在待修改数据对象ClassFile中存在相同成员变量,则将需要添加的成员变量覆盖到待修改数据对象ClassFile中。
5.根据权利要求4所述的一种Java字节码修改方法,其特征在于,遍历目标数据对象ClassFile的成员变量与待修改数据对象ClassFile的成员变量,逐一进行比较,比较依据是所述成员变量field_info的name_index对应的常量池的值是否相同。
6.根据权利要求1所述的一种Java字节码修改方法,将目标数据对象ClassFile中新增的方法依次添加到待修改数据对象ClassFile中,其特征在于,遍历目标数据对象ClassFile中的方法,将目标数据对象ClassFile中的方法与待修改数据对象ClassFile中的方法相比较,若需要添加的方法在待修改数据对象ClassFile中不存在,并且所述方法名称以“wclassfile”开头,则将所述方法添加到待修改数据对象ClassFile中,若所述方法名称不以“wclassfile”开头,则不添加所述方法;若需要添加的方法在待修改数据对象ClassFile中存在相同方法,则将需要添加的方法覆盖到待修改数据对象ClassFile中。
7.根据权利要求7所述的一种Java字节码修改方法,其特征在于,遍历目标数据对象ClassFile的方法与待修改数据对象ClassFile的方法,逐一进行比较,比较依据是所述方法method_info的name_index对应的常量池的值是否相同。
8.根据权利要求4-7任一所述的一种Java字节码修改方法,其特征在于,所述目标数据对象ClassFile中新增的成员变量与新增的方法添加到待修改数据对象ClassFile后,修改所述成员变量内部属性中对常量池的引用索引与方法内部属性中对常量池的引用索引。
9.根据权利要求1所述的一种Java字节码修改方法,其特征在于,导出修改后的待修改数据对象ClassFile并按照字节码协议保存为字节码文件。
10.一种Java字节码修改装置,其特征在于,所述Java字节码修改装置包括至少一个处理器,以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行权利要求1-9任一所述的Java字节码修改方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111148367.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种炼焦煤梯级预热工艺及设备
- 下一篇:隔离驱动电路及隔离驱动方法





