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.

