First Online Java Class Decompiler and Obfuscator


Read the rest of this page

Here we provide a brief overview of how to use access Reveal. Feel free to experiment with other features.

User Interface Design
The applet is designed with menu at the top and a status bar at the bottom, which show status information about the current decompilation. The center area is reserved for retrieving user input and displaying output. The applet is designed to fit easily onto a single page.


Accessing the menu
The menu is always available at the top of the applet. When the applet is loading, the menu is disabled. Once loaded, the menu is enabled and moving the mose over any item will cause it to highlight. Simply click on the menu to select it.

Logging In


User are required to register with JReveal.ORG under the members section. Users will no longer see the above login screen, but the applet will log them into the system automatically. Users can proceed to the next section to use the applet.

Entering a URL
In order to enter a URL for decompilation, you need to be on the “Start” page which is accessible by clicking on the “Start” menu. After logging in, this is the first page that is displayed. Enter a URL that points to a class file. Examples of URL can be found on our website. If you would like the class hierarchy and codes to be sent to your mailbox, you can simply click the “Mail to :” option and enter your email address in the box provided. The other two options are currently not implemented. Click on the proceed button to continue. You will need to wait patiently once the “Class decompilation” has been completed and “Class Hierarchy” generated as data is being communicated via the server and the client and can take a very long time depending on the amount of data being transmitted. This may take up to 1 to 2 minutes.

Bytecode Viewer
The bytecode viewer serves as a two fold task. It display the generated code in the editor component on the right-hand side and provides the bytecode of the class file on the left-hand side. Clicking on any bytecode will display the related information of the bytecode in the text component. To retrieve the structured code, simply select the “PlainCode Viewer” menuitem.

Example showing related bytecode information.


Class Structure
Clicking on the “Class Structure” will give a hierarchy dump of all the related classes.

Class Hierarchies
There are three kind of class hierarchies. The extends relationship, implements relationship and the uses relationship. Clicking on the “Class Hierarchy” menu will display the extends relationship and provide means to access the other two graphs.

Extends Relationship
The extends relationship is the base and derived class relationship. The below example shows that Classes.Cat and Classes.Dog extends Classes.Animal.


Implements Relationship
The implements relationship shows information about classes that implement another class (polymorphism).


Uses Relationship
The uses relationships shows information about which class makes use of another class in its implementation.


Call Graph

The call graph shows information about all the classes, their method and other methods that they call.


You can click on the obfuscation item in the menu. This item is not shown in the above diagram as it is a new module which has been recently implemented.


Once a decompilation process has been successfully completed, clicking on the “obfuscation” menu item will bring you to the following interface. Default values like “Output Jar File” and “Properties” will be filled automatically depending on the information stored within the class files. Users are required to enter their email address so that the obfuscated Jar Files. Upon clicking the “next” button, the obfuscation process will be initiated and once the results of the obfuscation is available, they will be made available to the user.

In the above example, the “Output Jar File” is the output name of the jar file to be generated by the obfuscator and this is the file that will be emailed to you at the address entered in the “Email Jar To” text field. The properties section will be automatically generated and in this case it ask the obfuscator to obfuscate all the class files listed in the “Files in archive” list area but preserve the public methods in the class “Sol.class”. This is important as without this file, the constructor will be renamed and thus users will not be able to call up the applet or application using the name “Sol”, but the obfuscated name. Our intelligent agent will parse through all the files learnt through the decompilation phase and check for classes that extend the Applet class or classes that implements the “public static main” method. These classes are defaulted to not obfuscate their pubic methods. A brief depth of obfuscation technique is needed to play with this option and should not be modified unless the user understand the syntax. An online syntax description will be made soon.

Entering another URL
To enter another URL, simple “Exit” the “Data Viewer” menu or select the “Start” menu item.

Comments are closed.