• 修改JAVA字节码


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

     运行代码结果:

    博主教你手撸JVM 开源项目
    https://github.com/anons-org/nada
    https://gitee.com/grateful/nada
    博主长期对外收徒,欢迎咨询。
    《编程语言设计和实现》《MUD游戏开发》《软件破解和加密》《游戏辅助外挂》《JAVA开发》 以上课程非诚勿扰!



    =================================
    QQ:184377367
    GOLang Q1群:6848027
    GOLang Q2群:436173132
    C/C++/QT群 1414577
    单片机嵌入式/电子电路入门群群 306312845
    MUD/LIB/巫师交流群 391486684
    java/springboot/hadoop/JVM 群 4915800
    WEB前端开发交流群/nodejs/ 214737701
    操作系统研发群:15375777
    汇编/辅助/破解新手群:755783453
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    GDUFE ACM-1093
    GDUFE ACM-1088
    GDUFE ACM-1069
    GDUFE ACM-1051
    GDUFE ACM-1049
    GDUFE ACM-1046
    GDUFE ACM-1045
    GDUFE ACM-1043
    OpenCV学习(7.12)
    OpenCV学习(7.11)
  • 原文地址:https://www.cnblogs.com/cfas/p/15240892.html
Copyright © 2020-2023  润新知