Freier Java-Decompiler

In jeder besseren Entwicklungsumgebung für Java ist ein Decompiler integriert. Daneben existieren auch Standalone-Decompiler wie der Java Decompiler. Der Decompiler ermöglicht es den Quelltext aus dem Kompilat wieder herzustellen. Dies funktioniert bei Java relativ gut, da dort der Quelltext nur in Bytecode für die JVM umgewandelt wird. Dieser Bytecode ist noch relativ High-Level, so das die Rückumwandlung einfacher vonstattengeht. Neben dem Standalone-GUI, existieren Plugins für Eclipse und IntelliJ IDEA.

Die grafische Oberfläche des Decompiler

Zu finden ist das Projekt unter java-decompiler.github.io, der entsprechenden Quelltext befindet sich ebenfalls auf GitHub. Lizenziert ist der Decompiler unter der GPL in der Version 3 und damit freie Software.

Freier Decompiler von Avast

Wer kennt das nicht; man steht mitten im Nirgendwo und benötigt plötzlich einen Decompiler. Da passt es nur allzu gut, dass Avast vor einigen Tagen einen Decompiler veröffentlicht hat. Der Retargetable Decompiler war, laut Aussage von Avast knapp sieben Jahre in der Entwicklung, bevor er nun das Licht der Öffentlichkeit erblickte. Mit Hilfe dieses Decompilers können Kompilate unterschiedlicher Architekturen (Intel x86, ARM, MIPS, PIC32 und PowerPC) decompiliert werden. Leider werden im Moment nur 32-Bit Binaries unterstützt. Auch die Liste der unterstützen Dateiformate für die zu decompilierende Datei reicht von ELF, PE, Mach-O, COFF, AR, Intel HEX bis zu reinem Maschinencode.

Die Online-Version des Decompilers

Als Plattformen für die Ausführung des Decompilers, werden offiziell Windows und Linux unterstützt. Unter macOS funktioniert die Ausführung ebenfalls, allerdings wird hier keine Garantie für die Funktionsfähigkeit gegeben. Daneben existiert eine Online-Version, mit welcher der Decompiler ausprobiert werden kann. Hierbei gilt eine Beschränkung von 10 MiB je Binary. Der Retargetable Decompiler unterstützt die statische Analyse der zu dekompilierenden Dateien, erkennt automatisch den verwendeten Compiler und Packer und ist in der Lange die Ausgabe in C und einer an Python angelehnten Syntax auszugeben. Der Quelltext des Decompilers ist auf GitHub zu finden. Das Projekt ist unter der MIT-Lizenz lizenziert und damit freie Software. Der Download und weitere Informationen zum Retargetable Decompiler findet man auf der offiziellen Seite des Decompilers.

Freier .NET Decompiler

Für .NET gibt es eine Menge Decompiler wie z.B. den .NET Reflector von Red Gate. Leider gab es lange keine freie Variante eines .NET Decompiler. Im Zuge der Ankündigung das der .NET Reflector künftig kostenpflichtig erhältlich ist, wurde Anfang 2011 mit dem ILSpy Projekt begonnen, dessen Ziel es ist einen vollwertigen Decompiler für .NET zu entwickeln.

ILSpy

ILSpy

Die in der Version 2.2 vorliegende Software ist mittlerweile stabil und für den produktiven Einsatz geeignet. ILSpy ist unter der MIT lizenziert und damit freie Software. Der Quelltext ist auf GitHub zu finden, die offizielle Seite ist unter ilspy.net zu erreichen.