Jar包反编译

工具1:jad

下载地址:https://varaneckas.com/jad/
比如我现在有个jar包,struts2-core-2.3.16.3.jar

当前所在目录为D:/mylib,在当前目录启动cmd,执行

jad -o -r -ff -dtest -sjava struts2-core-2.3.16.3/**/*.class
-o表示反编译后遇到同名文件直接覆盖(默认会询问)
-r表示反编译后的文件,保持原有的目录结构
-ff表示反编译的class文件里字段位于方法前面(默认字段位于方法后面)
-d表示反编译内容的输出目录
-s表示反编译生成的文件的后缀
**表示匹配struts2-core-2.3.16.3目录树下的所有以class为后缀的文件

不足是:里面也有一些编译不出来的部分,对于比较简单的单文件没有问题。
参考链接:https://blog.csdn.net/huangdengji/article/details/84834789

工具2:fernflower(推荐)

jad需要将jar解压后,然后再反编译;fernflower是直接指定要编译的jar位置,然后直接输出反编译后的jar包

下载地址:http://the.bytecode.club/fernflower.jar

以前面提到的情况为例

java -jar D:/short/jar/fernflower.jar struts2-core-2.3.16.3.jar test/rem
1.如果fernflower.jar和struts2-core-2.3.16.3.jar在同一目录下,就写成rem java -jar fernflower.jar struts2-core-2.3.16.3.jar test/rem
2.test目录可以不用事先创建

参考链接:
https://blog.csdn.net/zz121822/article/details/79816068
https://github.com/fesh0r/fernflower
http://www.javadecompilers.com/ 在线反编译jar包

转载自:https://blog.csdn.net/u010999809/article/details/87649060

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章