
Un'applicazione estensibile per penetration tester e sviluppatori software per decodificare/codificare dati in vari formati.

Decoder++ è un'applicazione estensibile progettata per penetration tester, sviluppatori software e chiunque abbia bisogno di decodificare e codificare dati senza sforzo in vari formati. Include una vasta gamma di script e codec preinstallati, decodifica intelligente e identificazione del formato, e supporta sia l'interfaccia grafica (GUI) che quella a riga di comando (CLI).
Mettiti in funzione con Decoder++ in pochi passaggi:
# Installazione tramite pip (ultima versione: qt6)
pip3 install decoder-plus-plus[qt6]
# Oppure, per un backport qt5:
pip3 install decoder-plus-plus[qt5]
# Per sfruttare tutte le funzionalità e i plugin:
pip3 install decoder-plus-plus[extras]
Per una guida all'installazione dettagliata, incluse le istruzioni specifiche per piattaforma, consulta la Guida all'Installazione.
Questa sezione fornisce una panoramica sui diversi modi di interagire con
Decoder++. Per ulteriori informazioni sull'utilizzo, consulta la sezione Uso Avanzato.
L'interfaccia grafica offre due modalità di interazione distinte:
una modalità-finestra-principale e una modalità-dialogo.

Mentre la modalità-finestra-principale supporta le schede, la modalità-dialogo ha la capacità di restituire il contenuto trasformato a stdout, pronto per ulteriori elaborazioni. Di conseguenza, Decoder++ può potenziare altri strumenti/script fornendo un'interfaccia grafica per la trasformazione flessibile di qualsiasi input.

Sebbene Decoder++ elabori l'intero testo di input per impostazione predefinita, permette anche la trasformazione selettiva dei dati. Per trasformare solo una porzione specifica del testo, evidenzia semplicemente il segmento desiderato nel campo di input e quindi applica il codec scelto.

Oltre all'interfaccia grafica, Decoder++ fornisce anche un'interfaccia a riga di comando:
$ dpp -e base64 -h sha1 "Hello, world!"
e52d74c6d046c390345ae4343406b99587f2af0d
Decoder++ ti permette di scegliere tra una varietà di codec e script:
Nei casi in cui necessiti di maggiore flessibilità, Decoder++ ti permette di elaborare i tuoi dati con script personalizzati utilizzando lo script Custom Code:

Questa sezione fornisce informazioni aggiuntive su come utilizzare l'interfaccia a riga di comando.
L'interfaccia a riga di comando offre un facile accesso a tutti i codec disponibili.
Per elencarli si può utilizzare l'argomento -l. Per restringere la ricerca, l'argomento -l accetta parametri aggiuntivi che fungono da filtro:
$ dpp -l base enc
Codec Type
----- ----
base16 encoder
base32 encoder
base64 encoder
Decoder++ distingue tra encoder, decoder, hasher e script.
Come l'interfaccia grafica, l'interfaccia a riga di comando permette l'uso di più codec in sequenza:
$ dpp "H4sIAAXmeVsC//NIzcnJ11Eozy/KSVEEAObG5usNAAAA" -d base64 -d gzip
Hello, world!
Mentre encoder, decoder e hasher possono essere utilizzati immediatamente, alcuni script potrebbero richiedere una configurazione aggiuntiva.
Per mostrare tutte le opzioni disponibili di uno script specifico, aggiungi il parametro 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
Per configurare uno script specifico, le singole opzioni devono essere fornite come coppie nome-valore (es. search_term="Hello"):
$ dpp "Hello, world!" -s search_and_replace search_term="Hello" replace_term="Hey"
Hey, world!
Sentiti libero di aprire un nuovo ticket per richiedere funzionalità o segnalare bug. Non esitare nemmeno a creare una pull request per nuove funzionalità/plugin. Maggiori informazioni sullo sviluppo di Decoder++ si trovano nella Guida allo Sviluppo.
Grazie a
Quando si avvia Decoder++ su Mac OS, i segnali non funzionano.
Questo potrebbe accadere se PyQt6 è installato tramite homebrew.
Quando si avvia Decoder++ in CygWin si verifica un errore:
ModuleNotFoundError: No module named 'PyQt6'
Questo potrebbe accadere anche se PyQt6 è installato tramite pip.
Attualmente non esiste una soluzione per questo. Si consiglia invece di avviare Decoder++ utilizzando la riga di comando di Windows.
Quando si avvia Decoder++ viene visualizzato l'errore No module named 'PyQt6.sig' nella console.
Questo può accadere quando sono installate versioni concorrenti di PyQt6. Reinstallare PyQt6 dovrebbe risolvere l'errore.
$ sudo pip3 uninstall PyQt6
$ sudo pip3 install PyQt6
Almeno su Ubuntu 22.04 potrebbe essere necessario installare i seguenti pacchetti usando apt:
apt install libqt6core6 libqt6network6 libqt6openglwidgets6 libqt6widgets6
Per eseguire dpp all'interno di un contenitore/macchina virtuale potrebbe essere necessario installare i
qt6-qpa-plugins all'interno del contenitore/macchina virtuale e configurare la
variabile QT_QPA_PLATFORM_PLUGIN_PATH di conseguenza:
apt install qt6-qpa-plugins
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt6/plugins/platforms/
Consulta gli script di build e run Docker per maggiori informazioni su come creare ed eseguire un container Docker di Decoder++.