RetDec 3.0: Avast öffnet seinen LLVM-basierten Decompiler

Avast hat am 13. Dezember 2017 den Maschinencode-Decompiler RetDec als Open Source veröffentlicht. Der Quellcode steht unter MIT-Lizenz. Die erste öffentliche Version trägt die Nummer 3.0. Das Projekt verwendet LLVM und übersetzt ausführbare Dateien in eine höherstufige Darstellung.

32-Bit-Zielcode, nicht jede Programmiersprache

Die Dokumentation des v3.0-Tags nennt ausschließlich 32-Bit-Zielarchitekturen: x86, ARM, MIPS, PIC32 und PowerPC. Unterstützte Formate sind unter anderem ELF, PE, Mach-O und COFF. Als Betriebssysteme für das Werkzeug führt sie Windows und Linux auf. Diese Angaben beschreiben unterschiedliche Ebenen: das System, auf dem RetDec läuft, und den untersuchten Zielcode.

Die Ausgabe besteht aus C oder einer Python-ähnlichen Sprache. Das bedeutet nicht, dass RetDec Python-Bytecode analysiert: Avast grenzt das Werkzeug ausdrücklich von Bytecode-Decompilern für Python, Java und .NET ab. Auch der ursprüngliche Quelltext lässt sich nicht vollständig zurückgewinnen, weil beim Kompilieren Informationen verloren gehen.

Zu den dokumentierten Funktionen gehören Kontrollflussgraphen, Compiler- und Packer-Erkennung sowie die Nutzung von DWARF- und PDB-Debug-Informationen. Avast nennt die statische Untersuchung von Schadsoftware als Einsatzgebiet. Das untersuchte Programm muss dafür nicht ausgeführt werden.

Das LLVM-Projekt hatte im September seine Compilerinfrastruktur in Version 5.0 veröffentlicht. RetDec zeigt einen anderen Einsatz dieser Infrastruktur: nicht den Bau einer Anwendung aus Quellcode, sondern die Analyse bereits übersetzten Codes. Daraus folgt jedoch nicht, dass RetDec 3.0 sämtliche Funktionen oder Zielarchitekturen von LLVM 5.0 übernimmt.

Historischer Versionsstand: Die Angaben beziehen sich auf RetDec 3.0 von Dezember 2017. Später hinzugekommene Plattformen und Architekturen sind nicht Teil dieser Meldung.

Weitere News

Weitere News

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein