
Eine erweiterbare Anwendung für Penetrationstester und Softwareentwickler, um Daten in verschiedene Formate zu dekodieren/kodieren.

Decoder++ ist eine erweiterbare Anwendung, die für Penetrationstester, Softwareentwickler und alle dazwischen konzipiert ist, die mühelos Daten in verschiedenen Formaten decodieren und codieren möchten. Sie enthält eine breite Palette vorinstallierter Skripte und Codecs, intelligente Decodierung und Formaterkennung und unterstützt sowohl grafische Benutzeroberflächen (GUI) als auch Befehlszeilenschnittstellen (CLI).
Starten Sie Decoder++ in nur wenigen Schritten:
# Install using pip (latest:qt6)
pip3 install decoder-plus-plus[qt6]
# Or, for a qt5 backport:
pip3 install decoder-plus-plus[qt5]
# To leverage all features and plugins:
pip3 install decoder-plus-plus[extras]
Eine detaillierte Installationsanleitung mit plattformspezifischen Anweisungen finden Sie im Installationshandbuch.
Dieser Abschnitt gibt einen Überblick über die verschiedenen Interaktionsmöglichkeiten mit Decoder++. Weitere Nutzungsinformationen finden Sie im Abschnitt Erweiterte Nutzung.
Die grafische Benutzeroberfläche bietet zwei verschiedene Interaktionsmodi: einen Hauptfenster-Modus und einen Dialog-Modus.

Während der Hauptfenster-Modus Tabs unterstützt, kann der Dialog-Modus den transformierten Inhalt an stdout zurückgeben, bereit für die weitere Verarbeitung. Dadurch kann Decoder++ andere Tools/Skripte erweitern, indem es eine grafische Benutzeroberfläche für flexible Transformation beliebiger Eingaben bereitstellt.

Während Decoder++ standardmäßig den gesamten Eingabetext verarbeitet, ermöglicht es auch eine selektive Datentransformation. Um nur einen bestimmten Teil Ihres Textes zu transformieren, markieren Sie einfach das notwendige Textsegment im Eingabefeld und wenden Sie dann den gewünschten Codec an.

Zusätzlich zur grafischen Benutzeroberfläche bietet Decoder++ auch eine Befehlszeilenschnittstelle:
$ dpp -e base64 -h sha1 "Hello, world!"
e52d74c6d046c390345ae4343406b99587f2af0d
Decoder++ ermöglicht Ihnen die Auswahl aus einer Vielzahl von Codecs und Skripten:
Falls Sie etwas mehr Flexibilität benötigen, können Sie Ihre Daten mit benutzerdefinierten Skripten verarbeiten, indem Sie das Skript Custom Code verwenden:

Dieser Abschnitt bietet zusätzliche Informationen zur Nutzung der Befehlszeilenschnittstelle.
Die Befehlszeilenschnittstelle bietet einfachen Zugriff auf alle verfügbaren Codecs.
Um sie aufzulisten, kann das Argument -l verwendet werden. Um die Suche einzugrenzen, akzeptiert das Argument -l zusätzliche Parameter, die als Filter dienen:
$ dpp -l base enc
Codec Type
----- ----
base16 encoder
base32 encoder
base64 encoder
Decoder++ unterscheidet zwischen Enkodierern, Dekodierern, Hashern und Skripten.
Wie die grafische Benutzeroberfläche ermöglicht die Befehlszeilenschnittstelle die Verwendung mehrerer Codecs hintereinander:
$ dpp "H4sIAAXmeVsC//NIzcnJ11Eozy/KSVEEAObG5usNAAAA" -d base64 -d gzip
Hello, world!
Während Enkodierer, Dekodierer und Hasher sofort verwendet werden können, erfordern einige Skripte möglicherweise zusätzliche Konfiguration.
Um alle verfügbaren Optionen eines bestimmten Skripts anzuzeigen, fügen Sie den Parameter help hinzu:
$ dpp "Hello, world!" -s split_and_rejoin help
Split & Rejoin
==============
Name Value Group Required Description
---- ----- ----- -------- -----------
split_by_chars split_behaviour yes the chars used at which to split the text
split_by_length 0 split_behaviour yes the length used at which to split the text
rejoin_with_chars yes the chars used to join the splitted text
Um ein bestimmtes Skript zu konfigurieren, müssen die einzelnen Optionen als Name-Wert-Paare angegeben werden (z.B. search_term="Hello"):
$ dpp "Hello, world!" -s search_and_replace search_term="Hello" replace_term="Hey"
Hey, world!
Zögern Sie nicht, ein neues Ticket für Funktionsanfragen oder Fehlermeldungen zu eröffnen. Ebenso sind Pull-Requests für neue Funktionen/Plugins willkommen. Weitere Informationen zur Entwicklung von Decoder++ finden Sie im Entwicklungsleitfaden.
Dank an
Beim Starten von Decoder++ unter Mac OS funktionieren Signale nicht.
Dies kann passieren, wenn PyQt6 mit Homebrew installiert wurde.
Beim Starten von Decoder++ unter CygWin tritt ein Fehler auf:
ModuleNotFoundError: No module named 'PyQt6'
Dies kann auch dann passieren, wenn PyQt6 mit pip installiert wurde. Derzeit gibt es dafür keine Lösung. Stattdessen wird empfohlen, Decoder++ über die Windows-Befehlszeile zu starten.
Beim Starten von Decoder++ wird auf der Konsole der Fehler No module named 'PyQt6.sig' angezeigt. Dies kann passieren, wenn konkurrierende Versionen von PyQt6 installiert sind. Eine Neuinstallation von PyQt6 sollte diesen Fehler beheben.
$ sudo pip3 uninstall PyQt6
$ sudo pip3 install PyQt6
Zumindest unter Ubuntu 22.04 kann es erforderlich sein, die folgenden Pakete mit apt zu installieren:
apt install libqt6core6 libqt6network6 libqt6openglwidgets6 libqt6widgets6
Um dpp in einem Container/einer virtuellen Maschine auszuführen, müssen Sie möglicherweise die qt6-qpa-plugins im Container/in der virtuellen Maschine installieren und die Umgebungsvariable QT_QPA_PLATFORM_PLUGIN_PATH entsprechend konfigurieren:
apt install qt6-qpa-plugins
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt6/plugins/platforms/
Weitere Informationen zum Erstellen und Ausführen eines Decoder++ Docker-Containers finden Sie in den Docker-Build- und Run-Skripten.