Reko (schwedisch: „anständig, zuvorkommend“) ist ein Dekompiler für Maschinencode-Binärdateien. Dieses Projekt ist unter der GNU General Public License frei verfügbar.
Das Projekt besteht aus Frontends, einer Kern-Decompiler-Engine und Backends, um seine Ziele zu erreichen. Zum Zeitpunkt des Schreibens waren eine Befehlszeile, eine Windows-GUI und ein ASP.NET-Frontend vorhanden. Die Dekompiler-Engine empfängt Eingaben von den Frontends entweder in Form einzelner ausführbarer Dateien oder Dekompiler-Projektdateien. Reko-Projektdateien enthalten zusätzliche Informationen zu einer Binärdatei, die für den Dekompilierungsprozess oder die Formatierung der Ausgabe hilfreich sind. Anschließend analysiert die Dekompilierungs-Engine die Eingabebinärdatei.
Byte-Map-Ansicht einer geladenen binären ausführbaren ARM-Datei | Dekompilierte Ansicht einer geladenen binären ausführbaren ARM-Datei |
Reko hat das Ziel, die Dekompilierung verschiedener Prozessorarchitekturen und ausführbarer Dateiformate mit minimalem Benutzereingriff zu unterstützen. Eine vollständige Liste finden Sie auf der Seite der unterstützten Binärdateien.
Bitte beachten Sie, dass viele Softwarelizenzen die Dekompilierung oder andere Rückentwicklung ihrer Maschinencode-Binärdateien verbieten. Verwenden Sie diesen Dekompiler nur, wenn Sie gesetzlich berechtigt sind, die Binärdatei zu dekompilieren (z. B. wenn die Binärdatei Ihre eigene ist).
Offizielle Veröffentlichungen werden alle paar Monate auf Github und SourceForge veröffentlicht. Benutzer, die Reko nicht selbst erstellen können oder wollen, können die Ausgabe des Cirrus CI-Integrations-Builders oder des Github Actions-Integrations-Builders herunterladen. Natürlich können Sie das Projekt aus den Quellen erstellen: siehe „Hacking“ unten.
Die folgende erforderliche Software muss zuerst auf Ihrem Computer installiert werden:
.NET 6.0 (https://www.microsoft.com/net/download/dotnet-framework-runtime)
Laden Sie ein entsprechendes Installationsprogramm herunter und führen Sie es auf dem Zielcomputer aus.
Nach der Installation können Sie fortfahren, indem Sie entweder Binärdateien direkt vom Integrations-Build-Server herunterladen oder Reko aus Quellen erstellen (siehe Hacking
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.
Im Issue-Tracker können Sie alle aufgetretenen Probleme melden oder Fragen zu Reko stellen. Sie können auch den Chatroom Reko Gitter.im ausprobieren. Reko wird durch den Einsatz von Freiwilligen in ihrer Freizeit aufgebaut. Passen Sie daher 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 Lösungsdatei Reko-decompiler.sln
zu erstellen. Reko benötigt zum Kompilieren das .NET 6.0 SDK. Wenn Sie ein IDE-Benutzer sind, verwenden Sie eine aktuelle Version von Visual Studio 2022. Wenn Sie über die Befehlszeile erstellen 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}
entweder 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 daran interessiert sind, Code beizutragen, sehen Sie sich die Roadmap mit den zu erkundenden Bereichen an. Das Wiki enthält weitere Informationen über die internen Abläufe des Reko-Projekts. Bitte konsultieren Sie den Styleguide.
Sie erhalten beim Laden der Lösung in Visual Studio Warnungen oder Fehlermeldungen, wenn Sie das WiX-Toolset nicht auf Ihrem Entwicklungscomputer installiert haben. Sie können die Warnungen getrost ignorieren; Das WiX-Toolset wird nur beim Erstellen von MSI-Installationspaketen verwendet. Sie müssen kein Installationsprogramm erstellen, wenn Sie das Projekt bereits kompilieren können: Der Erstellungsprozess kopiert alle erforderlichen Dateien in ein einziges Verzeichnis. Wenn Sie 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.
Die Installation von CMake als Teil von Visual Studio reicht aus, um msbuild über die Developer Command Prompt
auszuführen, jedoch nicht, wenn Sie aus VS heraus erstellen, es sei denn, Sie haben dies zu Ihrem globalen PATH hinzugefügt. Wenn Sie CMake extern installieren, können Sie es während der Installation zu PATH hinzufügen.
HINWEIS : In bestimmten Versionen von Visual Studio gibt es ein Problem, das beim Laden des Projekts auftreten kann. Sie werden es bemerken, wenn Visual Studio beim Ausführen von Hintergrundaufgaben hängen bleibt und Sie das Projekt nicht erstellen können. Eine Problemumgehung besteht darin, im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt „NativeProxy“ zu klicken und „Projekt entladen“ auszuwählen. Das Projekt kann dann ordnungsgemäß geladen und erstellt werden. Dieses Problem tritt beim Erstellen über die Befehlszeile nicht auf.
Der Lösungsordner 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 Befehlszeilentreiber.
Die neuesten Veröffentlichungen finden Sie im Veröffentlichungsprotokoll.