
Расширяемое приложение для пентестеров и разработчиков ПО для декодирования/кодирования данных в различные форматы.

Decoder++ — это расширяемое приложение, предназначенное для тестеров на проникновение, разработчиков программного обеспечения и всех, кто хочет легко декодировать и кодировать данные в различных форматах. Оно включает широкий набор предустановленных скриптов и кодеков, интеллектуальное декодирование и определение формата, а также поддерживает работу как в графическом (GUI), так и в командном (CLI) интерфейсе.
Запустите Decoder++ всего за несколько шагов:
# Установка с помощью pip (последняя версия: qt6)
pip3 install decoder-plus-plus[qt6]
# Или для обратной совместимости с qt5:
pip3 install decoder-plus-plus[qt5]
# Для использования всех функций и плагинов:
pip3 install decoder-plus-plus[extras]
Подробное руководство по установке, включая инструкции для конкретных платформ, см. в Руководстве по установке.
В этом разделе представлен обзор различных способов взаимодействия с Decoder++. Дополнительную информацию об использовании см. в разделе Расширенное использование.
Графический интерфейс предоставляет два режима взаимодействия:
main-window-mode (режим главного окна) и dialog-mode (режим диалога).

В то время как main-window-mode поддерживает вкладки, dialog-mode позволяет выводить преобразованный контент в stdout для дальнейшей обработки. Таким образом, Decoder++ может дополнять другие инструменты/скрипты, предоставляя графический интерфейс для гибкого преобразования любых входных данных.

Хотя по умолчанию Decoder++ обрабатывает весь входной текст, он также позволяет выборочное преобразование данных. Чтобы преобразовать только определённую часть текста, просто выделите нужный фрагмент в поле ввода, а затем примените нужный кодек.

Помимо графического интерфейса, Decoder++ также предоставляет интерфейс командной строки:
$ dpp -e base64 -h sha1 "Hello, world!"
e52d74c6d046c390345ae4343406b99587f2af0d
Decoder++ позволяет выбирать из множества кодеков и скриптов:
Если вам требуется большая гибкость, Decoder++ позволяет обрабатывать данные с помощью пользовательских скриптов, используя скрипт Custom Code:

В этом разделе представлена дополнительная информация о том, как использовать интерфейс командной строки.
Интерфейс командной строки обеспечивает лёгкий доступ ко всем доступным кодекам.
Для их вывода можно использовать аргумент -l. Чтобы сузить поиск, аргумент -l принимает дополнительные параметры, которые работают как фильтр:
$ dpp -l base enc
Codec Type
----- ----
base16 encoder
base32 encoder
base64 encoder
Decoder++ различает кодеры, декодеры, хешеры и скрипты. Как и графический интерфейс, интерфейс командной строки позволяет использовать несколько кодеков подряд:
$ dpp "H4sIAAXmeVsC//NIzcnJ11Eozy/KSVEEAObG5usNAAAA" -d base64 -d gzip
Hello, world!
В то время как кодеры, декодеры и хешеры можно использовать сразу, некоторые скрипты могут требовать дополнительной настройки. Чтобы показать все доступные опции конкретного скрипта, добавьте параметр 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
Для настройки конкретного скрипта отдельные параметры необходимо передавать в виде пар «имя-значение» (например, search_term="Hello"):
$ dpp "Hello, world!" -s search_and_replace search_term="Hello" replace_term="Hey"
Hey, world!
Не стесняйтесь открывать новый тикет для запроса функций или сообщения об ошибках. Также не стесняйтесь отправлять pull-request для новых функций/плагинов. Дополнительную информацию о разработке Decoder++ можно найти в Руководстве по разработке.
Благодарности:
При запуске Decoder++ на Mac OS сигналы не работают.
Это может произойти, если PyQt6 установлен с помощью homebrew.
При запуске Decoder++ в CygWin возникает ошибка:
ModuleNotFoundError: No module named 'PyQt6'
Это может произойти, даже если PyQt6 установлен с помощью pip. На данный момент исправления нет. Вместо этого рекомендуется запускать Decoder++ из командной строки Windows.
При запуске Decoder++ на консоли отображается ошибка No module named 'PyQt6.sig'. Это может произойти, если установлены конфликтующие версии PyQt6. Переустановка PyQt6 должна исправить эту ошибку.
$ sudo pip3 uninstall PyQt6
$ sudo pip3 install PyQt6
По крайней мере, в Ubuntu 22.04 может потребоваться установить следующие пакеты с помощью apt:
apt install libqt6core6 libqt6network6 libqt6openglwidgets6 libqt6widgets6
Чтобы запустить dpp внутри контейнера/виртуальной машины, может потребоваться установить пакет qt6-qpa-plugins внутри контейнера/виртуальной машины и настроить переменную QT_QPA_PLATFORM_PLUGIN_PATH соответствующим образом:
apt install qt6-qpa-plugins
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt6/plugins/platforms/
Дополнительную информацию о сборке и запуске Docker-контейнера Decoder++ см. в скриптах сборки и запуска Docker.