首页 > 基础资料 博客日记
Java的反编译:直接修改class字节码文件
2024-07-13 03:00:07基础资料围观284次
文章Java的反编译:直接修改class字节码文件分享给大家,欢迎收藏Java资料网,专注分享技术知识
前段时间接到一个需求,要求修改收费系统的收费倍率,由于系统年代久远,没有源代码,需要反编译再修改。
用到的软件如下:
- IntelliJ IDEA
- jd-gui - 用于反编译代码(项目地址:https://github.com/java-decompiler/jd-gui)
- jclasslib Bytecode Viewer - IDEA插件,用于修改class文件
情况一:参数为静态变量
此时修改比较简单,方法如下:
-
直接用IDEA打开class文件,可以找到相关的变量
-
在菜单中选择
View
->Show Bytecode with Jclasslib
-
在弹出的侧栏中找到相关字段
情况二:参数在方法内部
在大多数情况下,需要对整个项目进行反编译,以研究系统的运行机制,此时可以利用jd-gui进行反编译。
-
双击"jd-gui.jar"打开软件,并找到class文件路径。
-
此时可以找到方法内的费率参数,可以看到类型是double
-
返回IDEA,利用
Show Bytecode with Jclasslib
功能,打开常量池,找到double常量,并修改
⚠️注意:由于Java的机制,修改常量池会影响该class文件内所有使用相同常量的函数,请确保没有其它函数在使用这个常量
文章来源:https://blog.csdn.net/wjy2311077/article/details/137061495
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签: