Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
retdec — RetDec ist ein umstellbarer Maschinencode-Dekompilierer basierend auf LLVM. | Kitploit
Tools/GitHubGitHub/avast/retdec
Statische AnalyseReverse EngineeringMalware-AnalyseBinäranalyse
GitHubavast/retdec

retdec

RetDec ist ein umstellbarer Maschinencode-Dekompilierer basierend auf LLVM.

Repository anzeigenWebseite
8.6k997vor 3 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Warnung

Das RetDec-Projekt befindet sich derzeit aufgrund fehlender Ressourcen im eingeschränkten Wartungsmodus:

  • Pull-Requests sind willkommen. Sie werden prioritär geprüft, wenn möglich ohne Verzögerungen.
  • Auf Issues wird mit Verzögerungen von bis zu einem Quartal reagiert. Issues werden nicht aktiv gelöst, es sei denn, sie betreffen die grundlegende Projektwartung.
  • Die grundlegende Projektwartung wird fortgesetzt.
  • Es werden nur noch sehr begrenzte Weiterentwicklungen durchgeführt.

RetDec

Travis CI build status TeamCity build status))/statusIcon) RetDec CI

RetDec ist ein retargetierbarer Maschinencode-Dekompilierer basierend auf LLVM.

Der Dekompilierer ist nicht auf eine bestimmte Zielarchitektur, ein bestimmtes Betriebssystem oder ein bestimmtes ausführbares Dateiformat beschränkt:

  • Unterstützte Dateiformate: ELF, PE, Mach-O, COFF, AR (Archiv), Intel HEX und roher Maschinencode
  • Unterstützte Architekturen:
    • 32-Bit: Intel x86, ARM, MIPS, PIC32 und PowerPC
    • 64-Bit: x86-64, ARM64 (AArch64)

Funktionen:

  • Statische Analyse von ausführbaren Dateien mit detaillierten Informationen.
  • Erkennung von Compilern und Packern.
  • Laden und Dekodieren von Anweisungen.
  • Signaturbasierte Entfernung von statisch verknüpftem Bibliothekscode.
  • Extraktion und Nutzung von Debug-Informationen (DWARF, PDB).
  • Rekonstruktion von Anweisungsidiomen.
  • Erkennung und Rekonstruktion von C++-Klassenhierarchien (RTTI, vtables).
  • Demangling von Symbolen aus C++-Binärdateien (GCC, MSVC, Borland).
  • Rekonstruktion von Funktionen, Typen und High-Level-Konstrukten.
  • Integrierter Disassembler.
  • Ausgabe in zwei Hochsprachen: C und eine Python-ähnliche Sprache.
  • Erstellung von Call-Graphen, Kontrollflussgraphen und verschiedenen Statistiken.

Für weitere Informationen besuchen Sie

  • Wiki (in Arbeit)
  • Botconf 2017 Vortrag: Folien, Video
  • REcon Montreal 2018 Vortrag: Folien
  • Veröffentlichungen

Installation

Es gibt zwei Möglichkeiten, RetDec zu beziehen und zu installieren:

  1. Laden Sie ein vorgefertigtes stabiles oder bleeding-edge Paket herunter und entpacken Sie es. Befolgen Sie nach dem Entpacken die Anweisungen im Abschnitt Verwendung der Datei retdec/share/retdec/README.md.
  2. Erstellen Sie RetDec selbst aus dem Quellcode, indem Sie dem Abschnitt Build und Installation folgen. Befolgen Sie nach der Installation die folgenden Anweisungen.

Wir unterstützen derzeit Windows (7 oder höher), Linux, macOS und (experimentell) FreeBSD. Eine installierte Version von RetDec benötigt etwa 5 bis 6 GB freien Speicherplatz.

Verwendung

Bitte stellen Sie sicher, dass Sie die Anweisungen lesen, die der verwendeten RetDec-Version entsprechen. Wenn Sie unsicher sind, lesen Sie die Datei retdec/share/retdec/README.md in der Installation.

Windows

  1. Nach der Installation von RetDec installieren Sie Microsoft Visual C++ Redistributable for Visual Studio 2017.

  2. Installieren Sie die folgenden Programme:

    • UPX (Optional: falls Sie den UPX-Entpacker in der Vorverarbeitungsstufe verwenden möchten)
    • Graphviz (Optional: falls Sie Call- oder Kontrollflussgraphen erstellen möchten)
  3. Um eine Binärdatei namens test.exe zu dekompilieren, führen Sie Folgendes aus:

    root@kitploit:~
    $RETDEC_INSTALL_DIR\bin\retdec-decompiler.exe test.exe
    

    Für weitere Informationen führen Sie retdec-decompiler.exe mit --help aus.

Linux

  1. Nach der Installation von RetDec installieren Sie die folgenden Pakete über den Paketmanager Ihrer Distribution:

    • UPX (Optional: falls Sie den UPX-Entpacker in der Vorverarbeitungsstufe verwenden möchten)
    • Graphviz (Optional: falls Sie Call- oder Kontrollflussgraphen erstellen möchten)
  2. Um eine Binärdatei namens test.exe zu dekompilieren, führen Sie Folgendes aus:

    root@kitploit:~
    $RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
    

    Für weitere Informationen führen Sie retdec-decompiler mit --help aus.

macOS

  1. Nach der Installation von RetDec installieren Sie die folgenden Pakete:

    • UPX (Optional: falls Sie den UPX-Entpacker in der Vorverarbeitungsstufe verwenden möchten)
    • Graphviz (Optional: falls Sie Call- oder Kontrollflussgraphen erstellen möchten)
  2. Um eine Binärdatei namens test.exe zu dekompilieren, führen Sie Folgendes aus:

    root@kitploit:~
    $RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
    

    Für weitere Informationen führen Sie retdec-decompiler mit --help aus.

FreeBSD (Experimentell)

  1. Derzeit gibt es keine vorgefertigten "Ports"-Pakete für FreeBSD. Sie müssen den Dekompilierer selbst erstellen und installieren. Der Prozess wird unten beschrieben.

  2. Um eine Binärdatei namens test.exe zu dekompilieren, führen Sie Folgendes aus:

    root@kitploit:~
    $RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe
    

    Für weitere Informationen führen Sie retdec-decompiler mit --help aus.

Verwendung von RetDec-Bibliotheken

Sie können problemlos verschiedene RetDec-Bibliotheken in Ihren Projekten verwenden – sofern diese mit CMake erstellt werden. Die RetDec-Installation enthält alle erforderlichen Header, Bibliotheken und CMake-Skripte.

Wenn Sie RetDec an einem Standard-Installationsort Ihres Systems installiert haben (z. B. /usr, /usr/local), müssen Sie lediglich Folgendes tun, um seine Komponenten zu verwenden:```cmake find_package(retdec 5.0 REQUIRED COMPONENTS [...] ) target_link_libraries(your-project PUBLIC retdec:: [...] )

root@kitploit:~
Wenn Sie RetDec nicht an einem Ort installiert haben, an dem es automatisch erkannt werden kann, müssen Sie CMake helfen, es zu finden, bevor `find_package()` verwendet wird. Es gibt im Allgemeinen zwei Möglichkeiten (wählen und verwenden Sie nur eine):

1. Fügen Sie das RetDec-Installationsverzeichnis zu [`CMAKE_PREFIX_PATH`](https://cmake.org/cmake/help/latest/variable/CMAKE_PREFIX_PATH.html) hinzu:
    ```cmake
    list(APPEND CMAKE_PREFIX_PATH ${RETDEC_INSTALL_DIR})
    ```

2. Setzen Sie den Pfad zu den installierten RetDec CMake-Skripten auf `retdec_DIR`:
    ```cmake
    set(retdec_DIR ${RETDEC_INSTALL_DIR}/share/retdec/cmake)
    ```

Siehe die Wiki-Seite [Repository Overview](https://github.com/avast/retdec/wiki/Repository-Overview) für die Liste der verfügbaren RetDec-Komponenten oder [retdec-build-system-tests](https://github.com/avast/retdec-build-system-tests) für Demos zur Verwendung.

## Build und Installation

Dieser Abschnitt beschreibt einen lokalen Build und die Installation von RetDec. Anweisungen für Docker werden im nächsten Abschnitt gegeben.

### Anforderungen

#### Linux

* Ein C++-Compiler und eine Standard-C++-Bibliothek, die C++17 unterstützen (z. B. GCC >= 7)
* [CMake](https://cmake.org/) (Version >= 3.6)
* [Git](https://git-scm.com/)
* [OpenSSL](https://www.openssl.org/) (Version >= 1.1.1)
* [Python](https://www.python.org/) (Version >= 3.4)
* [autotools](https://en.wikipedia.org/wiki/GNU_Build_System) ([autoconf](https://www.gnu.org/software/autoconf/autoconf.html), [automake](https://www.gnu.org/software/automake/) und [libtool](https://www.gnu.org/software/libtool/))
* [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/)
* [m4](https://www.gnu.org/software/m4/m4.html)
* [zlib](http://zlib.net/)
* Optional: [Doxygen](http://www.stack.nl/~dimitri/doxygen/) und [Graphviz](http://www.graphviz.org/) zur Generierung der API-Dokumentation

Auf Debian-basierten Distributionen (z. B. Ubuntu) können die erforderlichen Pakete mit `apt-get` installiert werden:```sh
sudo apt-get install build-essential cmake git openssl libssl-dev python3 autoconf automake libtool pkg-config m4 zlib1g-dev upx doxygen graphviz

Auf RPM-basierten Distributionen (z.B. Fedora) können die erforderlichen Pakete mit dnf installiert werden:```sh sudo dnf install gcc gcc-c++ cmake make git openssl openssl-devel python3 autoconf automake libtool pkg-config m4 zlib-devel upx doxygen graphviz

root@kitploit:~
Unter Arch Linux können die erforderlichen Pakete mit `pacman` installiert werden:```sh
sudo pacman --needed -S base-devel cmake git openssl python3 autoconf automake libtool pkg-config m4 zlib upx doxygen graphviz

Windows

  • Microsoft Visual C++ (Version >= Visual Studio 2017 Version 15.7)
  • CMake (Version >= 3.6)
  • Git
  • OpenSSL (Version >= 1.1.1)
  • Python (Version >= 3.4)
  • Optional: Doxygen und Graphviz zur Erstellung der API-Dokumentation

macOS

Pakete sollten vorzugsweise über Homebrew installiert werden.

  • macOS >= 10.15
  • Vollständige Xcode-Installation (einschließlich Befehlszeilen-Tools, siehe #425 und #433)
  • CMake (Version >= 3.6)
  • Git
  • OpenSSL (Version >= 1.1.1)
  • Python (Version >= 3.4)
  • autotools (autoconf, automake und libtool)
  • Optional: Doxygen und Graphviz zur Erstellung der API-Dokumentation

FreeBSD (Experimentell)

Pakete sollten über das vorkompilierte Paket-Repository von FreeBSD mit dem pkg-Befehl installiert oder mit der ports-Datenbankmethode von Grund auf neu erstellt werden.

  • Vollständige „pkg“-Tool-Anleitung: Handbuch pkg-Methode
    • pkg install cmake python37 git autotools
      ODER
  • Vollständige „ports“-Anleitung: Handbuch ports-Methode
    • portsnap fetch
    • portsnap extract
  • Beispielsweise wäre cmake
    • whereis cmake
    • cd /usr/ports/devel/cmake
    • make install clean

Vorgehen

Hinweis: Obwohl RetDec jetzt eine systemweite Installation unterstützt (#94), empfehlen wir, RetDec lokal in ein bestimmtes Verzeichnis zu installieren, sofern Sie nicht den Paketmanager Ihrer Distribution verwenden. Der Grund dafür ist, dass die Deinstallation einfacher ist, da Sie nur ein einziges Verzeichnis entfernen müssen. Führen Sie für eine lokale Installation cmake mit dem Parameter -DCMAKE_INSTALL_PREFIX=<path> aus, wobei <path> das Verzeichnis ist, in das RetDec installiert werden soll (z. B. $HOME/projects/retdec-install unter Linux und macOS und C:\projects\retdec-install unter Windows).

  • Repository klonen:
    • git clone https://github.com/avast/retdec
  • Linux:
    • cd retdec
    • mkdir build && cd build
    • cmake .. -DCMAKE_INSTALL_PREFIX=<path>
    • make -jN (N ist die Anzahl der Prozesse, die für die parallele Build verwendet werden sollen; typischerweise ergibt Anzahl der Kerne + 1 die schnellste Kompilierungszeit)
    • make install
  • Windows:
    • Öffnen Sie eine Eingabeaufforderung (z. B. cmd.exe)
    • cd retdec
    • mkdir build && cd build
    • cmake .. -DCMAKE_INSTALL_PREFIX=<path> -G<generator>
    • cmake --build . --config Release -- -m

Sie müssen die folgenden Parameter an cmake übergeben:

  • -DCMAKE_INSTALL_PREFIX=<path>, um den Installationspfad auf <path> zu setzen. Setzen Sie den Pfad in Anführungszeichen, wenn Sie unter Windows Rückwärtsschrägstriche verwenden (z. B. -DCMAKE_INSTALL_PREFIX="C:\retdec").
  • (Nur Windows) -G<generator> ist -G"Visual Studio 15 2017" für 32-Bit-Build mit Visual Studio 2017 oder -G"Visual Studio 15 2017 Win64" für 64-Bit-Build mit Visual Studio 2017. Spätere Versionen von Visual Studio können verwendet werden.

Sie können die folgenden zusätzlichen Parameter an cmake übergeben:

  • -DRETDEC_DOC=ON, um mit API-Dokumentation zu bauen (erfordert Doxygen und Graphviz, standardmäßig deaktiviert).
  • -DRETDEC_TESTS=ON, um mit Tests zu bauen (standardmäßig deaktiviert).
  • -DRETDEC_DEV_TOOLS=ON, um mit Entwicklertools zu bauen (standardmäßig deaktiviert).
  • -DRETDEC_COMPILE_YARA=OFF, um die YARA-Regelkompilierung beim Installationsschritt zu deaktivieren (standardmäßig aktiviert).
  • -DCMAKE_BUILD_TYPE=Debug, um mit Debug-Informationen zu bauen, was während der Entwicklung nützlich ist. Standardmäßig wird das Projekt im Release-Modus erstellt. Dies hat unter Windows keine Auswirkung, aber das Gleiche kann erreicht werden, indem cmake --build . mit dem Parameter --config Debug ausgeführt wird.
  • -D<dep>_LOCAL_DIR=<path>, wobei <dep> aus {CAPSTONE, GOOGLETEST, KEYSTONE, LLVM, YARA, YARAMOD} stammt (z. B. ), um den lokalen Repository-Klon unter für die RetDec-Abhängigkeit zu verwenden, anstatt zur Build-Zeit eine frische Kopie herunterzuladen. Mehrere solcher Optionen können gleichzeitig verwendet werden.

In Docker erstellen

Der Docker-Support wird von der Community bereitgestellt. Wenn etwas bei Ihnen nicht funktioniert oder Sie Verbesserungsvorschläge haben, öffnen Sie ein Issue oder einen PR.

Image erstellen

Das Erstellen in Docker erfordert keine lokale Installation der erforderlichen Bibliotheken. Dies ist eine gute Option, um RetDec auszuprobieren, ohne die gesamte Build-Toolchain einrichten zu müssen.

Um das RetDec Docker-Image zu erstellen, führen Sie aus:``` docker build -t retdec - < Dockerfile

root@kitploit:~
Dies erstellt das Image aus dem Master-Branch dieses Repositorys.

Um das Image mithilfe der lokalen Kopie des Repositorys zu erstellen, verwenden Sie das Entwicklungs-Dockerfile, `Dockerfile.dev`:```
docker build -t retdec:dev . -f Dockerfile.dev

Container ausführen

Wenn Ihre uid nicht 1000 ist, stellen Sie sicher, dass das Verzeichnis mit Ihren Eingabebinärdateien für RetDec zugänglich ist:``` chmod 0777 /path/to/local/directory

root@kitploit:~
Jetzt können Sie den Dekompiler in einem Container ausführen:```
docker run --rm -v /path/to/local/directory:/destination retdec retdec-decompiler /destination/binary

Hinweis: Ändern Sie nicht den /destination Teil. Sie müssen nur /path/to/local/directory ändern. Ausgabedateien werden dann unter /path/to/local/directory generiert.

Nächtliche Builds

Wir generieren aktuelle RetDec-Pakete aus dem neuesten Commit im master-Zweig auf zwei Arten:

  • Mithilfe unserer TeamCity-Server
  • Mithilfe von Github Actions.

Die Builds sind hauptsächlich für RetDec-Entwickler, Mitwirkende und andere Personen gedacht, die mit dem Produkt experimentieren (z. B. Testen, ob ein Problem in der offiziellen Version im aktuellen master noch vorhanden ist).

Sie können diese nach Belieben verwenden, beachten Sie jedoch, dass es keine Garantien gibt, dass sie auf Ihrem System funktionieren (insbesondere die Linux-Version), und dass Regressionen möglich sind. Um eine stabile RetDec-Version zu erhalten, laden Sie entweder das neueste offizielle vorgebaute Paket herunter oder bauen Sie den neuesten RetDec-Version-Tag.

TeamCity

  • Windows Server 2016, Version 10.0
  • Ubuntu Bionic Linux, Version 18.04
  • Mac OS X, Version 10.14.6

Github Actions

Sie finden Builds für macOS, Linux und Windows im letzten RetDec CI-Workflow-Lauf.

Projektdokumentation

Siehe die Projektdokumentation für eine aktuelle Doxygen-generierte Softwarereferenz, die dem neuesten Commit im master-Zweig entspricht.

Verwandte Repositories

  • retdec-idaplugin -- Bettet RetDec in IDA (Interactive Disassembler) ein und erleichtert dessen Nutzung erheblich.
  • retdec-r2plugin -- Bettet RetDec in Radare2 ein und erleichtert dessen Nutzung erheblich.
  • retdec-regression-tests-framework -- Ein Framework zum Schreiben und Ausführen von Regressionstests für RetDec und verwandte Werkzeuge. Dies ist ein Muss, wenn Sie planen, zum RetDec-Projekt beizutragen.
  • retdec-regression-tests -- Eine Suite von Regressionstests für RetDec und verwandte Werkzeuge.
  • retdec-build-system-tests -- Eine Suite von Tests für das Build-System von RetDec. Dies kann auch als Sammlung von Demos zur Nutzung der RetDec-Bibliotheken dienen.
  • vim-syntax-retdecdsm -- Vim-Syntaxhervorhebungsdatei für die Ausgabe des RetDec-Disassemblers (.dsm-Dateien).

Lizenz

Copyright (c) 2017 Avast Software, lizenziert unter der MIT-Lizenz. Siehe die LICENSE-Datei für weitere Details.

RetDec enthält eine modifizierte PeLib-Bibliothek. Neue Module, die von Avast Software hinzugefügt wurden, sind unter der MIT-Lizenz lizenziert. Die ursprünglichen Quellen sind unter der folgenden Lizenz lizenziert:

  • Copyright (c) 2004 - 2005 Sebastian Porst ([email protected]), lizenziert unter der zlib/libpng-Lizenz. Siehe die LICENSE-PELIB-Datei für weitere Details.

RetDec verwendet Drittanbieter-Bibliotheken oder andere Ressourcen, die zusammen mit ihren Lizenzen in der LICENSE-THIRD-PARTY-Datei aufgeführt sind.

Mitwirken

Siehe die RetDec-Beitragsrichtlinien.

Danksagungen

Diese Software wurde durch die Forschungsförderung TACR (Technologická agentura České republiky), ALFA-Programm Nr. TA01010667, unterstützt.

Tool herunterladen
  • cmake --build . --config Release --target install
  • Alternativ können Sie die von cmake generierte retdec.sln in der Visual Studio IDE öffnen.
  • macOS:
    • cd retdec
    • mkdir build && cd build
    • cmake .. -DCMAKE_INSTALL_PREFIX=<path>
    • make -jN (N ist die Anzahl der Prozesse, die für die parallele Build verwendet werden sollen; typischerweise ergibt Anzahl der Kerne + 1 die schnellste Kompilierungszeit)
    • make install
  • FreeBSD:
    • sudo pkg install git cmake
    • git clone https://github.com/avast/retdec
    • cd retdec
    • mkdir build && cd build
    • root@kitploit:~
      # FreeBSD (and other BSDs) do need cmake, python3, git, autotools. OpenSSL is pre-installed in the OS but check its version.
      # Later versions may be available for each of the packages.
      # See what is installed:
      sudo pkg info cmake python37 autotools
      # Install/upgrade them:
      sudo pkg install cmake python37 autotools
      
    • cmake .. -DCMAKE_INSTALL_PREFIX=<path>
    • make -jN (N ist die Anzahl der Prozesse, die für die parallele Build verwendet werden sollen; typischerweise ergibt Anzahl der Kerne + 1 die schnellste Kompilierungszeit)
    • make install
  • -DCAPSTONE_LOCAL_DIR=<path>
    <path>
  • -DRETDEC_ENABLE_<component>=ON, um nur die angegebene(n) Komponente(n) zu bauen (mehrere solcher Optionen können gleichzeitig verwendet werden), und deren Abhängigkeiten. Standardmäßig werden alle Komponenten gebaut. Wenn mindestens eine Komponente über diesen Mechanismus aktiviert wird, werden alle anderen Komponenten, die nicht explizit aktiviert wurden (und nicht als Abhängigkeiten der aktivierten Komponenten benötigt werden), nicht gebaut. Siehe cmake/options.cmake für alle verfügbaren Komponentenoptionen.
    • -DRETDEC_ENABLE_ALL=ON kann verwendet werden, um alle Komponenten (wieder) zu aktivieren.
    • Alternativ kann -DRETDEC_ENABLE=<durch Kommas getrennte Komponentenliste> anstelle von -DRETDEC_ENABLE_<component>=ON verwendet werden (z. B. ist -DRETDEC_ENABLE=fileformat,loader,ctypesparser äquivalent zu -DRETDEC_ENABLE_FILEFORMAT=ON -DRETDEC_ENABLE_LOADER=ON -DRETDEC_ENABLE_CTYPESPARSER=ON).