Showing posts with label Decompiler. Show all posts
Showing posts with label Decompiler. Show all posts

Saturday, March 22, 2008

Overview

NEWS: A beta version of the same is available in the git repository at - http://github.com/akkumar/jreversepro/tree/master .

JREVERSEPRO is a Java Decompiler / Disassembler written entirely in Java. This reverse engineering utility is issued under the GNU GPL.

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 Java Virtual Machine(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.



Thursday, March 20, 2008

Download

Download the latest binaries from the sourceforge project page, as below.
To see a list of all file releases of the project, follow this link -

All File Releases

Browse Source (git)

License

This is issued under GNU GPL. You are free to use this for your research purposes and non-commercial applications only. Here is the BibTeX entry, you can use to cite the same.

@UNPUBLISHED{jreversepro2002,
author = {Karthik Kumar},
title = {JReversePro - Java Decompiler / Disassembler},
note = {JReversePro is a java decompiler / disassembler written in Java},
month = {November},
year = {2002},
owner = {Karthik Kumar},
keywords = {JReversePro},
url = {http://jreversepro.blogspot.com},
}

FAQ

How is the decompiler distributed ?

The sources and the binaries are distributed separately. Both of them are distributed as gzipped-tar files.

How do I install the decompiler ?

Download the decompiler binaries, distributed as a gzipped-tar file. Unpack it to a directory and set the environment variable JREVERSE_HOME point to the directory. Add JREVERSE_HOME/bin to PATH environment variable.

How do I run my decompiler ?


 $ jrevpro -g
To launch the decompiler as a Swing-based application.
$ jrevpro -u   
To launch the decompiler as an AWT application.

How do I use the command-line version ?

To Decompile a class file -
jrevpro  -dc   [  ] 
To Disassemble a class file -
jrevpro  -da   [  ] 
To view the ConstantPool of the class file -
jrevpro  -vp   
Interactive session. Type 'help' to get started.
jrevpro  -i   

Do I need any special tool to build the decompiler ?

The project uses a platform-independent XML file (build.xml) as its Makefile. So you need the ANT utility available at http://ant.apache.org/ to compile the project.

How do I submit bugs/modifications ?

You can help to make the software better by submitting bugs as soon as you encounter them.
Please use the bug submission method in the sourceforge.net project web site by visiting here.

Changelog

CHANGES to 1.4.1 from 1.4.0:
  • Bug in identifying if..while loops fixed.
  • Bug in identifying try..catch..finally and synchronized fixed.
  • Code is trimmer with branch-merging logic moved from collating table to branchentry.

CHANGES to 1.4.0 from 1.3.3:

  • bug regarding transient field members fixed.
  • lookup switch handling modified appropriately.
  • invokestatic instruction handling bug fixed.
  • Introduction of method blocks in API thereby moving towards provision of maximum manipulation of decompiled code through code.