JClassLib是一款免费易用的开源的java字节码查看软件,它可以修改、读取、写入Java Class,小编这里附上官方最新版本,下面还有详细的使用教程,可以参考。
JClassLib使用方法
1、比如说这个就是原来的java文件,很简单就是输出 google 这个字符串
2、编译之后,控制台执行结果为 google,为什么用 javac -d . Main.java 去编译java文件,这个我就不解释了,不懂的话去恶补一下
3、找到Main.class文件,并用 jd-gui打开,效果如下
4、在这里很明显看到源码,可惜不能修改呀,现在就准备修改工具,搞定它。解压jclasslib,目录如下
5、在eclipse里面创建一个java工程,然后把src文件覆盖到工程目录下,并且执行BrowserApplication.java,得到一个工具叫做Bytecode viewer,如下图
6、现在咱们可以利用工具找到我们修改的部分,我们就是要修改Main.class文件中google,修改成 baidu。
结构目录很清楚,methods就是方法,print是打印google字符串的方法,main是主函数,在这里我们找到print并打开
7、打开code,我们会看到第二行 lbc #4 <google>,这时我们点击#4
8、这个效果如下,通过这个,我们知道google字符串的地址在哪里了,在#21, 这个时候 点击 cp info #21
9、这时,我们看到的google字符是在[21]这个位置,并且CONSTANT_Utf-8_info,这些信息待会修改的时候 很有用。
10、现在我们可以用代码去把 google 修改成 baidu。首先创建一个工程,把刚刚下载jclasslib文件夹下bin目录下jclasslib.jar引入,如下图
11、Main.java函数代码如下
12、不报错,就代表成功了,然后再执行Main.class文件
JClassLib功能介绍
1、支持Java7-Java8(使用-target 1.7编译的类文件)。
2、Windows 7兼容的安装程序和启动器。
3、“字段”和“方法”的详细面板现在具有“复制到剪贴板”按钮将所有签名复制到系统剪贴板。
4、在字节码显示的底部,现在有一个下拉列表,其中包含所有使用的操作码和一个按钮,以显示Java语言规范中相应的官方文档。
5、验证了偏移量,并且在字节码显示中标记了无效的分支指令。
5、在“一般信息”中显示主要类文件版本为详细文本。
6、增加了CONSTANT_MethodHandle_info和CONSTANT_MethodType_info常量池条目的显示。
7、.class和.jcw文件的文件扩展名处理。
8、将.class和.jcw文件拖动到主窗口将打开它们。
- PC官方版
- 安卓官方手机版
- IOS官方手机版