
Une application extensible pour les testeurs d'intrusion et les développeurs de logiciels afin de décoder/encoder des données dans divers formats.

Decoder++ est une application extensible conçue pour les testeurs d'intrusion, les développeurs de logiciels et toute personne cherchant à décoder et encoder facilement des données dans divers formats. Elle comprend une large gamme de scripts et de codecs préinstallés, le décodage intelligent et l'identification de format, et prend en charge à la fois l'interface utilisateur graphique (GUI) et l'interface en ligne de commande (CLI).
Lancez-vous avec Decoder++ en quelques étapes :
# 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]
Pour un guide d'installation détaillé, y compris les instructions spécifiques à chaque plateforme, consultez le Guide d'installation.
Cette section donne un aperçu des différentes façons d'interagir avec
Decoder++. Pour plus d'informations sur l'utilisation, consultez la section Utilisation avancée.
L'interface graphique propose deux modes d'interaction distincts :
un main-window-mode (mode fenêtre principale) et un dialog-mode (mode dialogue).

Alors que le main-window-mode prend en charge les onglets, le dialog-mode a la capacité de renvoyer le contenu transformé vers stdout, prêt pour un traitement ultérieur.
Ainsi, Decoder++ peut améliorer d'autres outils/scripts
en fournissant une interface graphique pour la transformation flexible de n'importe quelle entrée.

Alors que Decoder++ traite l'intégralité du texte saisi par défaut, il permet également une transformation sélective des données.
Pour transformer uniquement une partie spécifique de votre texte, il suffit de surligner le segment de texte nécessaire dans le champ de saisie
puis d'appliquer le codec souhaité.

En plus de l'interface graphique, Decoder++ propose également une interface en ligne de commande :
$ dpp -e base64 -h sha1 "Hello, world!"
e52d74c6d046c390345ae4343406b99587f2af0d
Decoder++ vous permet de choisir parmi une variété de codecs et de scripts :
Lorsque vous avez besoin d'un peu plus de flexibilité, Decoder++ vous permet de traiter vos données avec des
scripts personnalisés en utilisant le script Code personnalisé :

Cette section fournit des informations supplémentaires sur la façon d'utiliser l'interface en ligne de commande.
L'interface en ligne de commande donne un accès facile à tous les codecs disponibles.
Pour les lister, l'argument -l peut être utilisé. Pour affiner la recherche,
l'argument -l accepte des paramètres supplémentaires qui agissent comme un filtre :
$ dpp -l base enc
Codec Type
----- ----
base16 encoder
base32 encoder
base64 encoder
Decoder++ fait la distinction entre les encodeurs, les décodeurs, les hacheurs et les scripts.
Comme l'interface graphique, l'interface en ligne de commande permet l'utilisation de plusieurs codecs à la suite :
$ dpp "H4sIAAXmeVsC//NIzcnJ11Eozy/KSVEEAObG5usNAAAA" -d base64 -d gzip
Hello, world!
Alors que les encodeurs, les décodeurs et les hacheurs peuvent être utilisés immédiatement, certains scripts peuvent nécessiter une configuration supplémentaire.
Pour afficher toutes les options disponibles d'un script spécifique, ajoutez le paramètre help :
$ 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
Pour configurer un script spécifique, les options individuelles doivent être fournies sous forme de paires nom-valeur (par exemple search_term="Hello") :
$ dpp "Hello, world!" -s search_and_replace search_term="Hello" replace_term="Hey"
Hey, world!
N'hésitez pas à ouvrir un nouveau ticket pour demander des fonctionnalités ou signaler des bogues. N'hésitez pas non plus à soumettre une pull request pour de nouvelles fonctionnalités/plugins. Plus d'informations concernant le développement de Decoder++ peuvent être trouvées dans le Guide de développement.
Remerciements à
Au démarrage de Decoder++ sous Mac OS, les signaux ne fonctionnent pas.
Cela peut se produire si PyQt6 est installé via homebrew.
Au démarrage de Decoder++ dans CygWin, une erreur se produit :
ModuleNotFoundError: No module named 'PyQt6'
Cela peut arriver même si PyQt6 est installé via pip.
Il n'existe actuellement aucun correctif pour cela. Il est plutôt recommandé
de lancer Decoder++ en utilisant la ligne de commande Windows.
Au démarrage de Decoder++, l'erreur No module named 'PyQt6.sig' s'affiche sur la console.
Cela peut se produire lorsqu'il existe des versions concurrentes de PyQt6 installées. Réinstaller PyQt6 devrait résoudre cette erreur.
$ sudo pip3 uninstall PyQt6
$ sudo pip3 install PyQt6
Au moins sous Ubuntu 22.04, il peut être nécessaire d'installer les paquets suivants avec apt :
apt install libqt6core6 libqt6network6 libqt6openglwidgets6 libqt6widgets6
Pour exécuter dpp dans un conteneur/machine virtuelle, vous devrez peut-être installer
qt6-qpa-plugins à l'intérieur du conteneur/machine virtuelle et configurer
QT_QPA_PLATFORM_PLUGIN_PATH en conséquence :
apt install qt6-qpa-plugins
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt6/plugins/platforms/
Voir les Scripts de construction et d'exécution Docker pour plus d'informations sur la construction et l'exécution d'un conteneur Docker Decoder++.