Introduction

ClassCracker is an essential tool for anyone who is serious about Java - from student to professional developer.



Recover Lost Source Code
Ever lost your Java source code? How many hours of work would be lost if the unthinkable happens? Do you need additional insurance for your time-critical project or does this happen only to others? If you still have your class files, ClassCracker will recover your source code! Better still - if your class files contain debug information (which is usual during software development), ClassCracker will recover all variable and method names as well!


A Software Development Tool
Found this great applet and want to know how it works? - Discover the programming techniques used by expert programmers!
Are you developing software using a 3rd party API but the documentation is incomplete or incorrect? - Decompile and study its inner workings!
Is an applet or application not to your liking? - Decompile, modify and recompile it!

NOTE: Most countries have very strict copyright laws that protect software authors. Reverse engineering is generally illegal. Most software licences do not permit decompilation or modification of the original software. Mayon Software Research does not approve or encourage unauthorised decompilation, re-engineering or modification of software. Before decompiling software, first check the licence agreement and/or the author to see if decompilation is permitted. It is your responsibility to obtain the author's permission to decompile or modify 3rd party software. Mayon Software Research will not accept liability for missuse of this product by purchasers of this product.


Learn More About Java

Its fully visual interface makes ClassCracker a great educational tool for learning more about Java and the Java Virtual Machine (JVM)! See how your own source code is translated to bytecode. Compare bytecode produced by different compilers. Modify your source code to optimise bytecode. Learn the structure of class files.



ClassCracker© is three applications in one:

    Decompiler
    ClassCracker is a Java decompiler that converts a bytecode file back to its equivalent Java source code file. More precisely, *.class files are converted to *.java files. For example, the file myApplet.class can be converted to the file myApplet.java.

    The decompilation process is the inverse of what a compiler does. Programming in Java, involves first writing the source code and then using a compiler to convert it to bytecode. This bytecode is then read and interpreted by the Java Virtual Machine when the program or applet is run.

    Disassembler
    ClassCracker is a Java disassembler that converts a bytecode file to Java Assembly Language (JASM). More precisely, *.class files can be converted to *.jasm files. For example, the file myApplet.class can be converted to the file myApplet.jasm.

    Java Assembly Language is for advanced programmers and requires an understanding of Java instruction opcodes. It provides an insight into the bytecode that is generated from the source code and offers the possibility of producing more efficient Java applications or applets. For example, different Java compilers generally produce different bytecode - by comparing JASM files it is possible to determine which compiler is the most efficient. Similarly, the effect of different compiler settings (switches) can be observed by studying the JASM file. Another use is for evaluating the efficiency of different source code techniques - examination of the JASM files can determine which of two different source code algorithms is the most efficient.

    Class File Structure Viewer
    ClassCracker allows the structure of a Java byte code file to be viewed and saved as a JDUMP file. More precisely, *.class files can be converted to *.jdump files. For example, the file myApplet.class can be converted to the file myApplet.jdump.

    The Class File Structure Viewer is a useful tool for understanding the structure and composition of Java class files.


ClassCracker performs a rigorous analysis of Java class files. Conversion to an equivalent source file involves a number of steps:

  1. The Java class file structure is first analysed and checked for validity. (This is the step that creates JDUMP files.)
  2. JASM code is created from the results from the first step. Generation of JASM code is generally straightforward. ClassCracker uses extended opcodes to include exception handling features (try, catch, finally) in the assembly code.
  3. Java source code is created from the JASM code produced in the previous step. This is the step that sets Java decompilers apart! ClassCracker uses a unique Control Node Analysis method that can handle even the most complex control structures such as deeply nested while or do..while loops, nested try blocks, and even try blocks nested within a catch block! The net result from this step is syntactically correct Java source code.
  4. Smart Mode analysis further enhances the Java source code produced in Step 3. Although the source code from Step 3 is syntactically correct, it tends to be verbose and can sometimes be hard to read and understand. Smart Mode involves a set of smart agents that make the created source code more elegant and readable. Smart Mode and each smart agent can be selectively switched on or off by the user.


Click here for a full list of features...