ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

修改JAVA字节码

2021-09-08 01:31:40  阅读:131  来源: 互联网

标签:Test3 ifeq JAVA 字节 succeeds 修改 only jasm class


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文件

 

 运行代码结果:

标签:Test3,ifeq,JAVA,字节,succeeds,修改,only,jasm,class
来源: https://www.cnblogs.com/cfas/p/15240892.html

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有