`

修改字节码 jclasslib

 
阅读更多
jclasslib 修改常量,修改import等比较容易。
但是修改方法,我自己没有找到有好用的api,可能是自己没有找到

使用javaasist 或者 asm 都可以修改方法。
相对比较简单。

jclasslib 简单的例子
public static void main(String[] args) throws Exception {

String root = System.getProperty("user.dir");
File sourceFile = new File(root,"WelcomeBean.class");

FileInputStream fis = new FileInputStream(sourceFile);

DataInput di = new DataInputStream(fis);
ClassFile cf = new ClassFile();
cf.read(di);
CPInfo[] infos = cf.getConstantPool();
FieldInfo[] fArr = cf.getFields();
MethodInfo[] mArr = cf.getMethods();
AttributeInfo[] aArr = cf.getAttributes();
String superClassName = cf.getSuperClassName();
String myClassName = cf.getThisClassName();

System.out.println("superClassName:" + superClassName);
System.out.println("myClassName:" + myClassName);
System.out.println("ConstantPool size:" + infos.length);
System.out.println("FieldInfo size:" + fArr.length);
System.out.println("AttributeInfo size:" + aArr.length);
System.out.println("MethodInfo size:" + mArr.length);


int count = infos.length;
for (int i = 0; i < count; i++) {
if (infos[i] != null) {
System.out.print(i);
System.out.print(" = ");
System.out.print(infos[i].getVerbose());
System.out.print(" = ");
System.out.println(infos[i].getTagVerbose());

if(i == 59){
ConstantUtf8Info info = (ConstantUtf8Info)infos[i];
info.setString("444444444");

}

}
}
cf.setConstantPool(infos);

count = mArr.length;
for(int i=0;i<count;i++){
MethodInfo info = mArr[i];
String name = info.getName();
if(name.equals("isSuperMan")){
String msg = "return false;";

}

}

fis.close();
ClassFileWriter.writeToFile(sourceFile, cf);
}
分享到:
评论

相关推荐

    jclasslib 修改class字节码工具

    `jclasslib` 是一款强大的Java字节码查看和编辑工具,尤其适合Java开发者在处理已编译的`.class`文件时使用。它允许我们深入理解类文件的结构,甚至对字节码进行修改,这对于调试、优化、学习Java虚拟机(JVM)的...

    借助jclasslib与javassist修改java class字节码

    ### 借助jclasslib与javassist修改Java class字节码 #### 一、引言 在软件开发过程中,有时我们可能面临一种情况:即需要对已经编译好的`.class`文件进行修改,但手中并没有对应的源代码。这种情况下,我们可以...

    jclasslib java字节码查看修改器

    java字节码查看器,jclasslib bytecode viewer可以对字节码文件进行修改和查看对应的变量

    字节码实战包含class,字节码.zip

    对字节码进行深入研究,通常会用到如jad、 jclasslib、IntelliJ IDEA等工具。它们可以帮助开发者查看类文件的结构,理解字节码指令的含义,甚至修改字节码以实现调试、优化或逆向工程的目的。 5. **字节码优化**:...

    修改class步骤jclasslib

    `jclasslib`是一款强大的字节码浏览器和编辑器,它允许开发者查看并修改`.class`文件的字节码。在本篇中,我们将深入探讨如何使用`jclasslib`来完成对`.class`文件的修改。 首先,让我们了解`jclasslib`的基本功能...

    jclasslib.rar_Java 8_java8 下载_java字节码查看工具;_jclasslib.jar_允许修改Jav

    jclasslib是一款免费开源的java字节码查看工具,该软件不但可以查看java字节码,同时还包含一个类库允许开发者读取,修改,写入Java Class文件与字节码。简单的说:用户可以通过jclasslib修改jar包下面的类,是一个...

    Jclasslib字节码阅读器

    JClassLib不但是一个字节码阅读器而且还包含一个类库允许开发者读取,修改,写入Java Class文件与字节码。 按照步骤,找到安装好的JDK中的jre之后,点下一步,程序会自动帮你配置路径。 安装好之后,在C:\Program ...

    java字节码查看工具(jclasslib)v5.1官方版

    jclasslib是一款免费开源的java字节码查看工具,该软件不但可以查看java字节码,同时还包含一个类库允许开发者读取,修改,写入Java Class文件与字节码。简单的说:用户可以通过jclasslib修改jar包下面的类,是一个...

    jclasslib Bytecode viewer v5.4_Win64

    这使得我们能够修改字节码,实现诸如动态代码增强、类文件转换等高级功能。 4. **教学与学习工具**: 对于初学者,jclasslib是学习Java字节码的理想工具。它将抽象的字节码指令与源代码对应起来,使得理论学习与...

    jclasslib-猴子哥哥.zip

    5. 修改字节码:在某些场景下,开发者可以通过jclasslib修改字节码,实现动态增强或调试。 四、实战应用 1. 代码优化:通过查看字节码,开发者可以发现潜在的性能瓶颈,优化循环结构、减少冗余计算等。 2. 动态代理...

    CJBE-Continued Java Bytecode Editor 字节码编辑器

    一种修改和分析java字节码结构和类文件的有效工具, 它是JBE-Java Bytecode Editor 0.1 升级版. 履历简介: 1.原始Jclasslib bytecode viewer 3.0字节码查看功能 2.继续维护升级为:JBE-Java Bytecode Editor 0.1字节...

    jclasslib5.3最新版各平台

    此外,JClassLib还支持对字节码的修改,这意味着开发者可以对编译后的代码进行调整,这对于教学、研究或者处理特定的优化问题非常有价值。 字节码是Java虚拟机(JVM)执行的二进制代码,它是Java源代码经过编译后的...

    jclasslib修改jar包里面的class文件包含jar

    `jclasslib`是一款强大的反编译器和字节码查看器,它允许开发者查看并修改JAR文件中的`.class`文件。这篇文章将深入探讨如何使用`jclasslib`来操作包含其他JAR的复杂项目。 首先,了解`jclasslib`的基本功能。它...

    JClassLib_windows 3.0

    总结,JClassLib作为一款强大的Class文件分析和修改工具,不仅为Java开发者提供了深入理解字节码的途径,同时也为代码优化和问题调试提供了有力的支持。通过熟练掌握JClassLib,开发者可以在遇到困难时快速定位问题...

    jclasslib反编译编辑class文件工具

    总之,JClassLib是一款强大的Java字节码分析工具,它为开发者提供了深入研究和修改字节码的能力,是进行Java字节码调试、逆向工程和学习的重要辅助工具。配合`jd_gui`,可以进一步提升开发者对Java程序底层运作的...

    JCLASSLIB

    【JCLASSLIB】是一款强大的Java字节码反编译及分析工具,专为开发者设计,用于查看、修改和分析`.class`文件。它允许程序员深入理解Java字节码的内部结构,这对于调试、逆向工程、教学或者优化代码非常有用。...

    jclasslib_windows_3_0

    jclasslib是一款强大的Java字节码查看器,它允许开发者直接查看并修改.class文件,从而深入了解Java虚拟机的工作原理。在本文中,我们将详细探讨jclasslib的使用方法以及其在Java反编译和修改中的应用。 首先,...

    JClassLib win64 5.5.1 .exe.zip

    JClassLib是一款强大的Java字节码查看器,尤其适用于win64平台的开发者,它允许用户直接修改CLASS格式文件,并以直观的树形结构展示类的字节码内容,从而帮助开发者深入理解代码执行的本质。 JClassLib 5.5.1是该...

    jclasslib安装文件--x64

    jclasslib是一款免费的、开源的、跨平台的Java字节码浏览器,它能够以直观的方式展示`.class`文件的内部结构,包括类信息、方法、变量、常量池等。在64位操作系统上,我们需要下载对应版本的jclasslib来确保正常运行...

Global site tag (gtag.js) - Google Analytics