27 March 2012

Easy java decompilation


Java Decompiler is a nice decompiler for Java. Lets try it! Here is my source code:
package se.lesc.blog;

/** This is class that shows how decompiled classes may look like */
public class DecompileExample {

    public static void main(String[] args) {
        
        String output = "";
        //Lets print out 10 Hello world
        for (int i = 0; i < 10; i++) {
            output += "Hello World\n";
        }
        System.out.println(output);
    }
}
When opening DecompileExample.class in Java Decompiler it looks like this;

As you can see it is very easy to browse related class files in the navigation pane to the right.When saving the source code to a file it will look like this:
/*    */ package se.lesc.blog;
/*    */ 
/*    */ import java.io.PrintStream;
/*    */ 
/*    */ public class DecompileExample
/*    */ {
/*    */   public static void main(String[] args)
/*    */   {
/*  8 */     String output = "";
/*    */ 
/* 10 */     for (int i = 0; i < 10; i++) {
/* 11 */       output = output + "Hello World\n";
/*    */     }
/* 13 */     System.out.println(output);
/*    */   }
/*    */ }

Things to note:
  1. The original line numbers has been added as a comment.
  2. Every original comment has been removed (it is removed in the compilation phase).
  3. The string operator += has been replaced by = output +.

1 comment:

  1. Also you can try AndroChef Java Decompiler - http://www.neshkov.com/ac_decompiler.html

    ReplyDelete