
Reko ist ein Binär-Dekompiler.
Reko (Schwedisch: „anständig, gefällig“) ist ein Dekompilierer für Maschinencode-Binärdateien. Dieses Projekt ist unter der GNU General Public License frei verfügbar.
Das Projekt besteht aus Frontends, der Kern-Dekompilierungs-Engine und Backends, um seine Ziele zu erreichen. Zum Zeitpunkt der Erstellung dieses Textes existieren ein Kommandozeilen-Frontend, ein Windows-GUI und ein ASP.NET-Frontend. Die Dekompilierungs-Engine erhält Eingaben von den Frontends entweder in Form einzelner ausführbarer Dateien oder Dekompilierer-Projektdateien. Reko-Projektdateien enthalten zusätzliche Informationen über eine Binärdatei, die für den Dekompilierungsprozess oder die Formatierung der Ausgabe hilfreich sind. Die Dekompilierungs-Engine analysiert dann die eingegebene Binärdatei.
![]() Byte-Map-Ansicht einer geladenen ARM-Binärdatei |
![]() Dekompilierte Ansicht einer geladenen ARM-Binärdatei |
Reko hat den Anspruch, die Dekompilierung verschiedener Prozessorarchitekturen und ausführbarer Dateiformate mit minimalem Benutzereingriff zu unterstützen. Eine vollständige Liste finden Sie auf der Seite unterstützte Binärdateien.
Bitte beachten Sie, dass viele Softwarelizenzen die Dekompilierung oder andere Formen des Reverse Engineering ihrer Maschinencode-Binärdateien verbieten. Verwenden Sie diesen Dekompilierer nur, wenn Sie das gesetzliche Recht haben, die Binärdatei zu dekompilieren (z. B. wenn die Binärdatei Ihre eigene ist).
Offizielle Veröffentlichungen erfolgen alle paar Monate auf Github und SourceForge. Benutzer, die Reko nicht selbst erstellen können oder wollen, können die Ausgabe des Cirrus CI Integration Builders oder des Github Actions Integration Builders herunterladen. Natürlich können Sie das Projekt auch aus den Quellen erstellen: siehe „Hacking“ weiter unten.
Die folgende erforderliche Software muss zuerst auf Ihrem Rechner installiert sein:
Laden Sie einen geeigneten Installer herunter und führen Sie ihn auf dem Zielrechner aus.
Nach der Installation können Sie entweder Binärdateien direkt vom Integrations-Buildserver herunterladen oder Reko aus den Quellen erstellen (siehe Hacking weiter unten).
Um sich mit den verschiedenen Funktionen von Reko vertraut zu machen, können Sie das Benutzerhandbuch lesen. Wenn Sie an den internen Abläufen des Projekts interessiert sind, sehen Sie sich das Wiki an.
Sie können alle Probleme, auf die Sie stoßen, oder Fragen zu Reko im Issue-Tracker melden. Sie können auch den Reko Gitter.im Chatroom nutzen. Reko wird durch die ehrenamtliche Arbeit von Freiwilligen in ihrer Freizeit entwickelt, passen Sie also Ihre Erwartungen an die Reaktionszeit entsprechend an.
Um Reko zu erstellen, klonen Sie zunächst https://github.com/uxmal/reko. Sie können eine IDE oder die Befehlszeile verwenden, um die Projektmappendatei Reko-decompiler.slnx zu erstellen. Reko benötigt das .NET 8.0 SDK zur Kompilierung. Wenn Sie eine IDE verwenden, nutzen Sie eine aktuelle Version von Visual Studio 2022. Wenn Sie die Befehlszeile verwenden möchten, verwenden Sie den Befehl
dotnet msbuild -p:Platform={platform} -p:Configuration={config} -v:m -t:build_solution -m ./src/BuildTargets/BuildTargets.csproj
Ersetzen Sie {config} durch Debug oder Release und {platform} durch x64 oder x86.
Hinweis: Bitte teilen Sie uns mit, wenn Sie immer noch nicht kompilieren können, damit wir Ihnen bei der Behebung des Problems helfen können.
Wenn Sie Interesse haben, Code beizutragen, finden Sie auf der Roadmap Bereiche, die erkundet werden können. Das Wiki enthält weitere Informationen über die internen Abläufe des Reko-Projekts. Bitte konsultieren Sie den Style Guide.
Sie erhalten Warnungen oder Fehler beim Laden der Projektmappe in Visual Studio, wenn Sie das WiX-Toolset nicht auf Ihrem Entwicklungsrechner installiert haben. Sie können die Warnungen getrost ignorieren; das WiX-Toolset wird nur verwendet, wenn MSI-Installationspakete erstellt werden. Sie müssen kein Installationsprogramm erstellen, wenn Sie das Projekt bereits kompilieren können: Der Build-Prozess kopiert alle erforderlichen Dateien in ein einziges Verzeichnis. Wenn Sie dennoch ein MSI-Installationsprogramm mit der WiX-Toolchain erstellen möchten, können Sie es hier herunterladen: http://wixtoolset.org/releases/
Je nachdem, was Sie tun, versucht Visual Studio möglicherweise, NativeProxy neu zu erstellen, das von CMake abhängt. Sie können entweder CMake installieren und sicherstellen, dass es zu Ihrem PATH hinzugefügt wird, oder das Projekt in Visual Studio deaktivieren.
Ein als Teil von Visual Studio installiertes CMake reicht aus, um msbuild über die Developer-Eingabeaufforderung auszuführen, jedoch nicht beim Erstellen innerhalb von VS, es sei denn, Sie haben es zu Ihrem globalen PATH hinzugefügt. Die externe Installation von CMake ermöglicht es Ihnen, es während der Installation zum PATH hinzuzufügen.
HINWEIS: In bestimmten Versionen von Visual Studio kann ein Problem auftreten, das sich beim Laden des Projekts zeigt. Sie bemerken es, wenn Visual Studio bei „Hintergrundaufgaben werden ausgeführt“ hängen bleibt und Sie das Projekt nicht erstellen können. Eine Problemumgehung besteht darin, mit der rechten Maustaste auf das Projekt „NativeProxy“ im Projektmappen-Explorer zu klicken und „Projekt entladen“ zu wählen. Das Projekt kann dann korrekt geladen und erstellt werden. Dieses Problem tritt nicht bei der Erstellung über die Befehlszeile auf.
Der Projektmappenordner Drivers enthält die ausführbaren Dateien, die als Benutzeroberflächen dienen. Das Unterverzeichnis WindowsDecompiler enthält den GUI-Client für die Windows Forms-Benutzeroberfläche. Das Unterverzeichnis AvaloniaShell enthält den GUI-Client für die plattformübergreifende Avalonia-Benutzeroberfläche (noch im Aufbau). CmdLine ist ein Kommandozeilen-Treiber.
Siehe das Release-Log für die neuesten Versionen.