
ペネトレーションテスターやソフトウェア開発者向けの拡張可能なアプリケーションで、データを様々な形式にデコード/エンコードします。

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++ との個別の対話方法について概説します。追加の使用方法については、Advanced Usage セクションを確認してください。
グラフィカルユーザーインターフェースは、2 つの異なる対話モードを提供します:
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!
機能のリクエストやバグの報告については、新しいチケットを遠慮なく開いてください。また、新機能やプラグインのプルリクエストも歓迎します。Decoder++ の開発に関する詳細情報は、開発ガイド に記載されています。
以下に感謝します
Mac OS で Decoder++ を起動すると、シグナルが機能しません。
これは、homebrew を使って PyQt6 がインストールされている場合に発生する可能性があります。
CygWin で Decoder++ を起動すると、エラーが発生します:
ModuleNotFoundError: No module named 'PyQt6'
これは、pip で PyQt6 がインストールされている場合でも発生する可能性があります。現在、これに対する修正はありません。代わりに、Windows コマンドラインを使用して Decoder++ を起動することをお勧めします。
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/
Decoder++ Docker コンテナの構築と実行方法の詳細については、Docker のビルドおよび実行スクリプトを参照してください。