java批量反编译工具
本文对常用的反编译工具进行简单介绍
JD-GUI、procyon-decompiler、luyten、crf
反编译工具分类JD-GUI
JDK7以及之前可以使用 JD-GUI,如果版本>=1.8 各种问题
procyon-decompiler
如果版本>=1.8 ,可以使用 procyon-decompiler,不过是命令行界面
luyten
luyten是Procyon的GUI,只需要下载luyten即可,不用下载Procyon
https://github.com/deathmarine/Luyten
下载地址
crf
crf也可以支持更高版本
小结
如果你的版本<=7,都可以使用,如果版本更高,请使用除了JD-GUI以外的选择
使用JD-GUI
略,JD-GUI网上教程很多,不再介绍。
procyon-decompiler
可以直接解析class文件到cmd窗口显示
也可以将反编译之后的文件保存到指定位置,如果需要保存在指定位置,需要增加 -o命令参数,并且需要指定保存的路径
直接显示:
java -jar D:\ApplicationFiles\program\procyon-decompiler-0.5.30.jar D:\ProgramData\ideaProjects\...\news\NewsController.class保存文件:
java -jar D:\ApplicationFiles\program\procyon-decompiler-0.5.30.jar D:\ProgramData\ideaProjects\...\news\NewsController.class -o C:\Users\noteless\Desktop\ddddddluytenluyten是图形化界面
通过File直接打开class文件即可
当然,也可以进行文件保存等操作
注意
直接打开luyten的时候,给出了下面的提示信息
但是,系统中的java环境是没有问题的,也是一直在使用的,CMD下运行java或者javac命令都没有问题
这是为什么?
据网上分析是因为使用了免安装版本的JDK,简单说不是从官网下载可执行程序一步一步安装而来
这也就导致了注册表中不存在JDK的信息
一种变通的途径就是借助于命令,通过在命令提示符下面输入 java -jar .\luyten-0.5.4.exe打开
(此时,我的文件存在于桌面上,所以使用的当前路径)
如果设置到其他位置,请给出路径,比如
也可以进一步设置为bat命令
文件就一行内容:
java -jar D:\ApplicationFiles\program\luyten-0.5.4.exe再进一步可以创建一个快捷方式,使用下文的方式,就可以直接使用WIN键+R打开
https://www.cnblogs.com/noteless/p/10471005.html
另一种方法,就是手动设置注册表
还有一种方法是重新安装JDK,走一遍过程
建议通过命令java -jar就好了,改注册表后续出现什么奇怪问题,自己可能都忘记了是自己改出来的
重新安装麻烦费事
CFR
http://www.benf.org/other/cfr/
CFR更新还是蛮及时的
它的使用,与procyon-decompiler没有区别
可以直接反编译呈现在CMD中,也可以输出到文件中
直接解析:
C:\Users\noteless>java -jar D:\ApplicationFiles\program\cfr-0.141.jar C:\Users\noteless\Desktop\NewsController.class输出文件:
java -jar D:\ApplicationFiles\program\cfr-0.141.jar C:\Users\noteless\Desktop\NewsController.class --outputdir C:\Users\noteless\Desktop\xxx
2. 跪求JAR反编译的最容易最强的工具
目前,市面上流行的Java反编译工具有近三十种,其中三款尤为突出。首先是广为人知的JAD,这是一种基于命令行的工具,尽管没有图形界面,但凭借其强大的功能和灵活性赢得了众多用户的青睐。JAD使用Microsoft Visual C++开发,处理复杂的Java编译文件速度极快,其众多参数使反编译的代码更为优化和易读。常用的参数包括:-d指定输出文件的目录,-s设置输出文件扩展名(通常设为.java),-8将Unicode字符转换为ANSI字符串。反编译指令示例:Jad –d c:\javasource –s .java -8 javatest.class,此指令将javatest.class反编译为javatest.java,并保存在c:\javasource目录。
其次是开源项目JODE,因其卓越的反编译效果而在众多反编译器中脱颖而出。JODE能够处理常见的加密手段,如混淆技术,反编译效果尤为出色。JODE本身是一个纯Java开发的可运行JAR文件,双击即可运行。反编译时,用户需在Options菜单中的Set Classpath设置类路径,单独的类文件输入其上一级目录,选择Reload Classpath即可。新加入的类包或类名会在左侧窗口显示,双击类名即可查看反编译后的源代码。
最后是独特的DAVA,作为Soot的一部分,DAVA采取了流程优化的方式进行反编译,对改变流程类的加密方法有独特效果。Soot需要严格的环境变量配置,通常要设置CLASSPATH:Set CLASSPATH=%CLASSPATH%;c:\sootdir\sootclasses-2.1.0.jar;.;,其中c:\sootdir\是下载的soot类包放置的路径。DAVA作为Soot的一个参数,使用方法为:Java soot.Main –f dava –d c:\javasource javatest。此操作与前述JAD的参数效果相同。
总体来说,这三种工具各有千秋,效果都非常出色。经测试,它们基本上都能将JDK自带的一些例程完全反编译,且无需任何修改即可成功编译并正常运行。
3. 最好的java反编译工具是哪个
最佳的Java反编译工具是jadx,它功能强大、使用便捷,支持Windows、Linux、macOS等操作系统,可以处理.apk、.dex、.jar、.zip等格式文件。
jadx提供GUI和命令行程序,用户根据需要选择使用。操作简单,直接拖拽文件即可实现反编译。例如,需要查看jar包源码时,只需将jar包拖入jadx即可。
jadx安装简单,作为开源软件,用户可免费下载使用。下载后解压压缩文件,进入bin目录找到可执行文件。用户也可以选择克隆源码,本地编译。
jadx由Java编写,使用Gradle构建,用户可通过Gradle命令进行本地编译或直接使用IDE运行。
jadx支持多种格式文件反编译,用户可通过File -> Open files...打开文件或直接拖拽文件进入jadx界面。
jadx内置强大搜索功能,支持多种匹配模式,用户可通过Navigation打开搜索功能,搜索类、方法、属性、代码、文件、注释。
用户还可以查看类、变量或方法的使用情况,通过右键选择Find Usage功能,jadx将快速找出使用这些元素的代码位置。
jadx支持自定义注释,通过右键选择Comment功能,用户可以将注释添加到源代码中。
在项目中进行混淆加密后,反混淆功能可以帮助恢复混淆后的代码可读性,用户可通过Tools -> Deobfuscation功能开启反混淆。
jadx是一个强大的Java反编译工具,以其功能强大、使用方便、支持多种格式文件以及强大的搜索和反混淆功能,成为了Java开发者的首选工具。