Decompiling Java applications
Decompilation is the process of recreating source code DecompilerI Recently wondered: What Decompiler is the best?
Began to torment Google, experiment. Finally found a great solution. As decompiling any program and get working the "source"? This was in the subject.
Quick overview of the popular Decompiler software
Mocha
Mocha (the author, Hanpeter van Vliet) is probably one of the first released of Java Decompiler software. Provides a console user interface. It was released in 1996, the year before, as a Java Development Kit version 1.1
JAva Decompiler
JAva Decompiler, JAD (author — Pavel Kouznetsov) — apparently, the
popular Decompiler Java. Like Mocha, the Decompiler provides a console interface, not updated and not supported, but a large number of graphical tools to work with it, including the JadClipse plugin for Eclipse IDE that makes it to this day used as handy tools to decompile the classes small.
In addition to decompiling JAva Decompiler has the ability to disassembly .class files.
DJ Java Decompiler
DJ Java Decompiler (the author — Atanas Neshkov) — for a long time despite its name is only a GUI for the previous program, allowing easily and conveniently to select the command-line arguments to call JAD. In the current version added support for annotations, but the program has become shareware (purchase after 10 trial uses).
JD-Core
JD-Core (by Emmanuel Dupuy) is a very powerful and functional library for decompiling and analyzing Java bytecode, developed in the framework of the "Java Decompiler project".
Has the following features:
the
-
the
- Entirely written in C++, which makes decompilation extremely fast the
- without the need for the Java Runtime Environment and therefore does not require special installation the
- Correctly decompiles .class files generated by most compilers
part of the independent graphic apps JD-GUI, also developed in C++ and prilinkovan to it statically, or plugin JD-Eclipse for the Eclipse development environment that makes it virtually impossible to use in third-party non-profit project, especially developed in the Java language. Use the library in commercial software is prohibited by the author.
Fernflower
Fernflower — one of the best Decompiler software Java programming language to date.
Has the following features:
1. Support various language constructs:
the
-
the
- Parametric types the
- the Annotations the
- Enum types the
- Statements
My choice
-
the
JD-GUI
— for viewing, not more
the Fernflower
— full restore
Stop at the second. In General, the author of the Decompiler not seem to put an offline version in the common access(or I missed this fact when reading his blog), until recently, was only online. But for me it was a pleasant surprise to find it on one forum!
Download: fernflower.jar
Quote from blog:
Fernflower will develop in the direction of deobfuscatorbecause the online version for reasons unknown doesn't work, and about offline it's hard to say anything(except that the quality of the decompilation is excellent), not about any modules at the moment of speech can not be.
...
Special features deobfuscation now contains the Fernflower not, they will connect in the future, individual modules,
do Not have another module renameYes. Look for something on the Internet.
The revenue will come Proguard, but unusual
ProGuardDeobfuscator — a small modification of ProGuard, turning it into a quasi-deobfuscator. In the process obfuscated the short names of packages, classes, fields and methods are replaced by more meaningful and unique within a Jar file.Download the source code and deobfuscator: projectd8.org/Programs/Java/PGD
The tools are all there, but I personally, for ease of recreating sorrow use the same favorite Netbeans IDE helps you a lot with their tips, especially when a lot of classes.
Thank you for your attention!
Links
se.math.spbu.ru/SE/YearlyProjects/2011/YearlyProjects/2011/345/345_Mikhailov_report.pdf
ru-java.livejournal.com
UPD:
Sorry, in the offline version of Fernflower there is a module renaming and lots of other stuff — Readme
Комментарии
Отправить комментарий