java 修改字节码_如何修改Java字节码

AsmTools

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

测试类

packagecom.jvm.byteCode;public classTest3 {public static voidmain(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文件

运行代码结果:

字节码修改成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值