bradsdavis / candle-decompiler

Candle Decompiler
82 stars 18 forks source link

Introduction

Hi; I am Brad Davis, and I am the creator of JBoss Cake. JBoss Cake is a tool to assist developers in migrating platforms from closed, proprietary systems to open source. Cake had the need for an open source decompiler. Candle is an open source decompiler I have created on my own time; it is far from complete. This is where that work will be developed over the next few months. Once we have a viable open source deompiler, the public beta of JBoss Cake will follow.

Currently, the state of the decompiler is that it only decompiles a subset of the JVM operations; if you are looking for a decompiler, please check out the many closed options at this point. Candle Decompiler has a long way to go to catch up with these fine tools, and this is more of a testing ground than anything at this point.

Follow the action at: @bradsdavis and @jbosscake !!

Open Source Alternative Decompilers

Closed Source Alternative Decompilers

Contributing to Candle Decompiler

Please consider contributing to the project if you are interested in decompilation. The flow control is implemented in BlockVisitor currently, and is missing a lot of logic right now. Intermediate Code assembly occurs within IntermediateVisitor. To contribute back to the code, please issue a pull-request against the project.

Special thanks to the following:

Apache BCEL - http://commons.apache.org/bcel/

Leveraging BCEL to parse the Java class and walk the assembly code.

JReversePro Team

Great resource for getting to know decompilers. Karthik Kumar, thanks for open sourcing!

Java Virtual Machine, by Jon Meyer and Troy Downing

Good book & online resource for understanding the JVM stack & operations.

James Hamilton - http://jameshamilton.eu/

Provides some really helpful online samples of code -> assembly.

Wikipedia - http://en.wikipedia.org/wiki/Java_syntax, http://en.wikipedia.org/wiki/Java_bytecode_instruction_listings

Great source of information related to JVM instructions.