Java Decompiler

Have you ever lost the source code to a Java program and thought there was no way to get your code back? Well fret no longer, HomeBrew Decompiler to the rescue! It's still far from perfect, but hopefully it will be able to provide enough for you to reconstruct your lost source file.

URL: http://pdr.cx/projects/hbd/
Licence: GPL

DJ Java Decompiler is Windows 95/98/Me/NT/2000/XP decompiler and disassembler for Java that reconstructs the original source code from the compiled binary CLASS files (for example Java applets). DJ Java Decompiler is able to decompile complex Java applets and binaries, producing accurate source code. DJ Java Decompiler is a stand-alone Windows application; it doesn't require having Java installed! DJ Java Decompiler is not just Java decompiler and disassembler but it is also a fully featured Java editor using the graphic user interface with syntax-coloring. Using DJ Java Decompiler is easy. Select Open and load your desired class file, or just double-click the CLASS file you want to decompile. DJ Java Decompiler supports drag-and-drop functions for OLE. You will see the source code instantly! In Windows Explorer Right mouse-button pop-up menu available too. You can decompile or disassembler a CLASS files on your computer hard disk or on a network drive that you have a connection to (you must have a full access rights or just change the default output directory for .jad files). You don't need to have the Java Virtual Machine or any other Java SDK installed. But this latest release is able to compile, run, create JAR archives and run applets outside of the context of a Web browser when JDK is installed. With DJ Java Decompiler you can decompile more than one java class file at one time.

URL: http://members.fortunecity.com/neshkov/dj.html
Licence: Proprietary

Cavaj Java Decompiler is a graphical freeware utility that reconstructs java source code from CLASS files. You can decompile java applets, jar and zip files producing accurate java source code. Browse the reconstructed source code with the Class View for instant access to methods and fields.

Cavaj Java Decompiler is Windows 95/98/ME/NT/2000/XP compatible. Cavaj Java Decompiler is a standalone Windows application, it doesn't require you to have Java installed.

URL: http://www.bysoft.se/sureshot/cavaj/
Licence: Proprietary

JReversePro is a Java Decompiler / Disassembler written entirely in Java. This reverse engineering utility is issued under the GNU GPL (see license). The utlimate objective of this project is to provide a decompiler that generates a Java object-based structure that can be programmatically inspected using a specific API.

Features:

  • The software is written 100 % in Java which implies you can seamlessly integrate your java applications with this.
  • The .class files could be disassembled to examine the JVM bytecode.
  • Command-line version now has the option to view constant pool.
  • Three flavours of the software - namely the Swing-based, AWT-based and the command-line based UI are available all with the same decompiling engine for people with different needs.
  • The contents of the ConstantPool could be examined as a dialog in the Swing-flavour.
  • Command-line version now has the option to view constant pool. Please see FAQ for more details regarding the same.

URL: http://jrevpro.sourceforge.net/
Licence: GPL

Jad is a Java decompiler, i.e. program that reads one or more Java class files and converts them into Java source files which can be compiled again.

Jad is a 100% pure C++ program and it generally works several times faster than decompilers written in Java. Jad doesn't use the Java runtime for its functioning, therefore no special setup is required (like changes to the CLASSPATH variable).

URL: http://www.kpdus.com/jad.html
Licence: Proprietary

Jshrink is a Java obfuscator that extracts the minimal set of class files for an application, removes unused code and data, obfuscates symbolic names, finalizes code for optimized execution, and stores the results in a Java jar file.

Jshrink typically reduces program size by 30-40%. Jshrink obfuscated code is much harder to comprehend when decompiled, a claim that can be readily verified using Jshrink's built-in Java decompiler. Jshrink can also create Windows executable files from Java jar files. Jshrink processes Java class files from all Java versions.

URL: http://www.e-t.com/jshrink.html
Licence: Proprietary

SourceAgain is the world's leading decompiler for Java class files. Unlike previous attempts at decompilation technology, SourceAgain is able to correctly analyze and decompile even the most complex Java control flow, producing correct, re-compilable Java almost every time.

SourceAgain supports Java 2 and later versions of the JDK including JDK1.3.x.

URL: http://www.ahpah.com/product.html
Licence: Proprietary

JODE is a java package containing a decompiler and an optimizer for java. This package is freely available under the GNU GPL. The bytecode package and the core decompiler is now under GNU Lesser General Public License, so you can integrate it in your project.

The decompiler reads in class files and produces something similar to the original java file. Of course this can't be perfect: There is no way to produce the comments or the names of local variables (except when compiled with debuging) and there are often more ways to write the same thing. However, JODE does its job quite well.

The optimizer transforms class files in various ways with can be controlled by a script file. It supports the following operations:

  • Renaming class, method, field and local names to shorter, obfuscated, or unique names or according to a given translation table
  • Removing debugging information
  • Removing dead code (classes, fields, methods) and constant fields
  • Optimizing local variable allocation

URL: http://jode.sourceforge.net/
Licence: GPL

ClassCracker is the ultimate Java decompiler! It is three applications in one:

  • A Java decompiler that retrieves Java source code from Java class files;
  • A Java disassembler that produces JVM (Java Virtual Machine) bytecode; and
  • A Java class file viewer that displays Java class file structures.

ClassCracker 3 works with the latest version of Java 2 - version 1.4.0 - and also with the previous Java 2 versions 1.3.0 and above.

URL: http://mayon.actewagl.net.au/index.html
Licence: Proprietary

CafeBabe (JDK1.1.x + Swing 1.1 or JDK1.2). This program will say you all about contents of complied code for JVM. It works as a graphical disassembler and displays full information about any sort of information enclosed in bytecode: field, methods, attributes, exceptions, synthetic members, method body, additional information inside code and so on. While virtual machine misses unknown attributes, CafeBabe displays all of them.

Main features of CafeBabe project are:

  • program represents bytecodes "as is" - following the class file format specification: magic number, minor and major version, constant pool, access flags, this class, super class, interfaces, fields, methods and class attributes;
  • program can read class files directly from archive (*.zip or *.jar) and it interprets them as directories, thereby you can travel inside archive for selecting desired file;
  • program contains abilities for searching string inside bytecode;
  • user can edit information inside constant pool (UTF8-string);
  • ability to remove some optional information from bytecodes: inside methods body, source file attribute, unknown attributes;
  • ability to perform migration of bytecodes disposed inside package from old to new namespace;
  • ability to perform obfuscation of bytecodes disposed inside packages;
  • ability to show/hide partitions of classfile.
  • user can use this program as a tutorial - tooltips will explain to user what each byte (short, integer) inside bytecode means;
  • user can quickly change its own location among installed classes and observe hierarchy tree (see Class-Hound Service);

URL: http://www.geocities.com/CapeCanaveral/Hall/2334/Programs/cafebabe.html
Licence: Proprietary

REVEAL is the first online Java class decompilerand obfuscator.

URL: http://www.jreveal.org/
Licence: Proprietary

IdeaJad lets you decompile Java jars or classes from IntelliJIdea using Pavel Kouznetsov's decompiler JAD. The plugin offers support for Windows, Linux and MacOSX. It's open source and free.

Decompilation can be initiated manually through the context menu, or simply by navigating to a class file (e.g. CTRL-Click on a class or method name). Additionally, the built-in line sorter tries to re-arrange the decompiled class so that the decompiled source code line numbers match those of the original source code. This is quite useful for debugging.

URL: http://www.tagtraum.com/ideajad.html
Licence: Proprietary