C:\>cdc C:\>type Maher.java public class Maher { public static void main(String[] args) { Richard r = new Richard(); r.dosomething(); } } class Richard { public void dosomething() { for(int i = 0; i < 3; i++) { print(); } } private static void print() { System.out.println("Ofuscation sucks"); } } C:\>javac Maher.java C:\>java -cp . Maher Ofuscation sucks Ofuscation sucks Ofuscation sucks C:\>jad -o Maher.class Parsing Maher.class...The class file version is 50.0 (only 45.3, 46.0 and 47.0 a re supported) Generating Maher.jad C:\>type Maher.jad // Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: packimports(3) // Source File Name: Maher.java public class Maher { public Maher() { } public static void main(String args[]) { Richard richard = new Richard(); richard.dosomething(); } } C:\>jad -o Richard.class Parsing Richard.class...The class file version is 50.0 (only 45.3, 46.0 and 47.0 are supported) Generating Richard.jad C:\>type Richard.jad // Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: packimports(3) // Source File Name: Maher.java import java.io.PrintStream; class Richard { Richard() { } public void dosomething() { for(int i = 0; i < 3; i++) print(); } private static void print() { System.out.println("Ofuscation sucks"); } } C:\>jar cvf rm.jar Maher.class Richard.class added manifest adding: Maher.class(in = 317) (out= 241)(deflated 23%) adding: Richard.class(in = 520) (out= 368)(deflated 29%) C:\>java -cp rm.jar Maher Ofuscation sucks Ofuscation sucks Ofuscation sucks C:\>type rm.pro -injars rm.jar -outjars rmx.jar -libraryjars /lib/rt.jar -keep public class Maher { public static void main(java.lang.String[]); } C:\>java -jar proguard.jar @rm.pro ProGuard, version 4.2 Reading program jar [C:\rm.jar] Reading library jar [C:\SUNJava\jdk1.6.0\jre\lib\rt.jar] Preparing output jar [C:\rmx.jar] Copying resources from program jar [C:\rm.jar] C:\>java -cp rmx.jar Maher Ofuscation sucks Ofuscation sucks Ofuscation sucks C:\>jar xvf rmx.jar inflated: META-INF/MANIFEST.MF inflated: Maher.class inflated: a.class C:\>jad -o Maher.class Parsing Maher.class...The class file version is 50.0 (only 45.3, 46.0 and 47.0 a re supported) Generating Maher.jad C:\>type Maher.jad // Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: packimports(3) public class Maher { public Maher() { } public static void main(String args[]) { new a(); a.a(); } } C:\>jad -o a.class Parsing a.class...The class file version is 50.0 (only 45.3, 46.0 and 47.0 are s upported) Generating a.jad C:\>type a.jad // Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: packimports(3) import java.io.PrintStream; final class a { a() { } public static void a() { for(int i = 0; i < 3; i++) System.out.println("Ofuscation sucks"); } }