Friday, March 23, 2007

Can someone explain me why there is so few decent java decompilers out there ? Yes, JAD does a decent job in many cases, but sometimes simple control flow confuses it and the reconstruction is less than accurate. JODE is sometimes better in that regard, but fails on a good number of files, and also does not seem to assign new variable names based on the types of the variables.

With all that Java code on my cellphone, it's slightly annoying that it's so difficult to get a decent decompile. I mean, once I have that I can work in eclipse and refactor the class/variable names until I am happy.

Then again, it seems Java decompilers were all the rage in 1997-2002, and nowadays few people seem to be developing them...

6 comments:

Jordan said...

Why use a decompiler when you can just use an Omnipotent debugger?

I mean, come on--it's omnipotent!

;-)

Thanasis K said...

Because it might be more comfortable to have a dead listing for reading/grep'ing than having to see a proggie step by step (this comes without having used the debugger your propose). Or perhaps you want to refactor the code in the IDE of your choice (as the original poster mentioned)

newsoft said...

DJ Java Decompiler used to be a good decompiler, even if it became shareware at some point. You should give it a try, though.

n said...

Before decompiling, try using JDO to 'DeObfuscate' the project. Also, i've found that whenever JAD doesn't quite get it right, you can always resort to IDA... Decompilation is a fickle artform at best, IDA is your friend...

dmc said...

halvar, newsoft is right about dj dec, it's a very good java decompiler. you should take a look at it.

lallous said...

AFAIK DJ Java Decompiler is just a visual frontend for JAD and is not a decompiler by itself.