java反编译jar包

╰半橙微兮° 2021-09-28 05:16 551阅读 0赞

工具1:jad

下载地址:https://varaneckas.com/jad/

比如我现在有个jar包,struts2-core-2.3.16.3.jar

20190218214924978.png

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

  1. 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

以前面提到的情况为例

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

参考链接:https://blog.csdn.net/zz121822/article/details/79816068

https://github.com/fesh0r/fernflower

http://www.javadecompilers.com/ 在线反编译jar包

发表评论

表情:
评论列表 (有 0 条评论,551人围观)

还没有评论,来说两句吧...

相关阅读