
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++ 交互的几种方式。更多用法信息请查看 高级用法 部分。
图形用户界面提供两种不同的交互模式:
主窗口模式 和 对话框模式。

主窗口模式 支持标签页,而 对话框模式 能将转换后的内容输出到 stdout,以便进一步处理。因此,Decoder++ 可以通过提供灵活的输入转换图形用户界面来增强其他工具/脚本。

默认情况下,Decoder++ 会处理所有输入文本,同时也支持选择性数据转换。要仅转换文本的特定部分,只需在输入字段中高亮选中所需的文本段,然后应用所需的编解码器。

除了图形用户界面,Decoder++ 还提供命令行界面:
$ dpp -e base64 -h sha1 "Hello, world!"
e52d74c6d046c390345ae4343406b99587f2af0d
Decoder++ 允许您从多种编解码器和脚本中进行选择:
如果您需要更多的灵活性,Decoder++ 允许您通过 自定义代码 脚本使用自定义脚本来处理数据:

本节提供关于如何使用命令行的更多信息。
命令行界面可以轻松访问所有可用的编解码器。
可以使用 -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 用于分割文本的字符
split_by_length 0 split_behaviour yes 用于分割文本的长度
rejoin_with_chars yes 用于连接分割后文本的字符
要配置特定脚本,需要将各个选项作为名称-值对提供(例如 search_term="Hello"):
$ dpp "Hello, world!" -s search_and_replace search_term="Hello" replace_term="Hey"
Hey, world!
欢迎为请求功能或报告错误开启新的工单。也欢迎为新的功能/插件提交拉取请求。有关 Decoder++ 开发的更多信息,请参阅开发指南。
感谢
在 Mac OS 上启动 Decoder++ 时,信号不起作用。
这可能是因为 PyQt6 是通过 homebrew 安装的。
在 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 构建和运行脚本。