码迷,mamicode.com
首页 > 编程语言 > 详细

如何修改Java字节码

时间:2020-05-14 19:15:54      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:mic   辅助   inf   pac   tools   jdis   print   文档   test   

AsmTools

AsmTools是openJdk中的一个项目,可以用来辅助我们修改字节码信息

官方文档: https://wiki.openjdk.java.net/display/CodeTools/How+to+build+AsmTools

测试类

package com.jvm.byteCode;

public class Test3 {
    public static void main(String[] args) {
        boolean flag = true;
        if (flag) System.out.println("ifeq:ifeq succeeds if and only if value = 0 ");
        if (flag == true) System.out.println("if_icmpne:if_icmpne succeeds if and only if value1 ≠ value2");
    }
}

通过jclasslib可以看到

技术图片

 

 代码执行结果

ifeq:ifeq succeeds if and only if value = 0
if_icmpne:if_icmpne succeeds if and only if value1 ≠ value2

JASM结果

通过下面命令可生成jasm结果

java -cp asmtools.jar  org.openjdk.asmtools.jdis.Main Test3.class > Test3.jasm.1

技术图片

 

 jasm生成class

修改jasm文件

技术图片

 

 通过命令

java -cp asmtools.jar  org.openjdk.asmtools.jasm.Main  Test3.jasm.1

生成对应的class文件

技术图片

 

 运行代码结果:

技术图片

 

 字节码修改成功了。

如何修改Java字节码

标签:mic   辅助   inf   pac   tools   jdis   print   文档   test   

原文地址:https://www.cnblogs.com/zhanhaitao/p/12890328.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!