前言:
反编译是一个对目标文件可执行程序进行逆向分析,从而得到源代码的过程。尤其是像Java这样的运行在虚拟机上的编程语言,更容易进行反编译得到源代码。今天介绍几款反编译的工具,以及如何更快的批量反编译。
介绍:
市面上免费的工具一大堆,这里就简单的介绍博主认为常用的反编译工具,例如(jd-gui、luyten,Procyon-Decompiler 等等)。
《JD-GUI》是一款反编译软件,JD分为JD-GUI、JD-Eclipse两种运行方式,JD-GUI是以单独的程序的方式运行,而且提供了Eclipse平台下的插件JD-Eclipse、IntelliJ的插件JD-IntelliJ。JD-GUI不需要安装,直接点击运行,可以反编译jar,class文件。是一个用 C++ 开发的 Java 反编译工具,由 Pavel Kouznetsov开发,支持Windows、Linux和苹果三个平台。
官网地址:http://jd.benow.ca/
《Luyten》是一款很强大的反编译工具包,Luyten是Procyon的GUI是一款Github的开源工具,软件功能非常强大,界面简洁明晰、操作方便快捷,设计得很人性化,软件支持*.JAR、*.zip、*.class等类型文件的反编译操作,还原度非常高,支持更多功能设置,如显式导入、类型、合成组件等等。
《Procyon-Decompiler》支持JDK1.8类的反编译,在很多方面做得非常不错:字符串的Switch、枚举声明方面、注解方面、匿名类、内部类、Java8新接口规范、Java8 Lambda表达式、Java8 方法传递等。
(1):java -jar procyon-decompiler-0.5.30.jar 需要反编译的class文件 -o 保存文件名
(2):./start $1 $2
./start 反编译的jar或者.class文件 基于当前路径的生成文件目录(不填默认是/tempDistDir)
eg: ./start a.jar temp
./start a.class temp
./start a.class
地址:https://download.csdn.net/download/qq496013218/10746446
《jad》解压后放到%JAVA_HOME%/bin目录下即可,通过命令去执行反编译。
例如:将需要反编译的多个文件放在指定路径下,例如(当前分布式项目都包含多个modules)。为了方便操作,我将文件放在D盘根目录下的classes文件夹中。打开运行--->输入cmd--->输入D:,将路径指到D盘根路径下。
地址:https://varaneckas.com/jad/
输入编译命令,命令:jad -o -r -s java -d src classes/**/*.class
src文件夹里面都是反编译后的java源文件。
jad命令的参数含义如下:
-o:覆盖旧文件,而且不用提示确认。
-r:重新加载生成包结构。
-s (java):定义输出文件的扩展名。jad为默认扩展名,我们反编译后当然是要.java源文件了。
-d:输出文件的目录。src表示反编译后的所有文件都放在src目录下。
classes/**/*.class:classes是需要反编译的文件夹的名字,整个表示classes目录下的所有class文件。也可以写成这样**/*.class,这表示当前目录及其子目录下所有的class文件(包含所有的子目录)。
来源:CSDN
作者:_William_Cheung
链接:https://blog.csdn.net/qq496013218/article/details/83414813