小工具知识网

当前位置: 首页 > 行业知识 > Java的反编译:直接修改class字节码文件

行业知识

Java的反编译:直接修改class字节码文件

2026-10-26 00:18:43 来源:互联网转载

前段时间接到一个需求,要求修改收费系统的收费倍率,由于系统年代久远,没有源代码,需要反编译再修改。

用到的软件如下:

  • IntelliJ IDEA
  • jd-gui - 用于反编译代码(项目地址:https://github.com/java-decompiler/jd-gui)
  • jclasslib Bytecode Viewer - IDEA插件,用于修改class文件

    情况一:参数为静态变量

    此时修改比较简单,方法如下:

    1. 直接用IDEA打开class文件,可以找到相关的变量

    2. 在菜单中选择View->Show Bytecode with Jclasslib

    3. 在弹出的侧栏中找到相关字段

    情况二:参数在方法内部

    在大多数情况下,需要对整个项目进行反编译,以研究系统的运行机制,此时可以利用jd-gui进行反编译。

    1. 双击"jd-gui.jar"打开软件,并找到class文件路径。

    2. 此时可以找到方法内的费率参数,可以看到类型是double

    3. 返回IDEA,利用Show Bytecode with Jclasslib功能,打开常量池,找到double常量,并修改

    ⚠️注意:由于Java的机制,修改常量池会影响该class文件内所有使用相同常量的函数,请确保没有其它函数在使用这个常量

上一篇:开源OCR技术,引领文字识别新时代的先锋

下一篇:帝国CMS伪静态规则查询攻略揭秘!