{"id":13843472,"url":"https://github.com/bytebutcher/decoder-plus-plus","last_synced_at":"2026-04-10T05:04:18.216Z","repository":{"id":59357527,"uuid":"139356646","full_name":"bytebutcher/decoder-plus-plus","owner":"bytebutcher","description":"An extensible application for penetration testers and software developers to decode/encode data into various formats.","archived":false,"fork":false,"pushed_at":"2024-04-09T14:03:38.000Z","size":5174,"stargazers_count":100,"open_issues_count":2,"forks_count":25,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-04-27T04:32:29.598Z","etag":null,"topics":["burpsuite","decoder","pentesting","pyqt5"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bytebutcher.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-01T19:38:07.000Z","updated_at":"2024-04-25T06:24:54.000Z","dependencies_parsed_at":"2024-04-09T15:04:06.073Z","dependency_job_id":null,"html_url":"https://github.com/bytebutcher/decoder-plus-plus","commit_stats":{"total_commits":226,"total_committers":2,"mean_commits":113.0,"dds":0.004424778761061954,"last_synced_commit":"5869d4d0ff0c90c2d414035a1e8e42e758842fba"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytebutcher%2Fdecoder-plus-plus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytebutcher%2Fdecoder-plus-plus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytebutcher%2Fdecoder-plus-plus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bytebutcher%2Fdecoder-plus-plus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bytebutcher","download_url":"https://codeload.github.com/bytebutcher/decoder-plus-plus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225755006,"owners_count":17519184,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["burpsuite","decoder","pentesting","pyqt5"],"created_at":"2024-08-04T17:02:09.820Z","updated_at":"2025-12-14T10:27:23.659Z","avatar_url":"https://github.com/bytebutcher.png","language":"Python","readme":"![Decoder++ Logo](https://raw.githubusercontent.com/bytebutcher/decoder-plus-plus/master/images/dpp.png)\n\n\u003ca href=\"https://pypi.python.org/pypi/decoder-plus-plus\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/decoder-plus-plus.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://pypi.python.org/pypi/decoder-plus-plus\"\u003e\u003cimg src=\"https://img.shields.io/pypi/dm/decoder-plus-plus\"\u003e\u003c/a\u003e\n\u003ca href=\"https://pypi.python.org/pypi/decoder-plus-plus\"\u003e\u003cimg src=\"https://img.shields.io/pypi/pyversions/decoder-plus-plus.svg\"\u003e\u003c/a\u003e\n\n# Decoder++\n\nDecoder++ is an extensible application designed for penetration testers, software developers, \nand anyone in between looking to effortlessly decode and encode data across various formats. \nIt includes a wide range of preinstalled scripts and codecs, smart decoding and format identification, \nand supports both graphical user interface (GUI) and command-line interface (CLI) operations.\n\n## Quick Start\n\nGet up and running with Decoder++ in just a few steps:\n\n```bash\n# Install using pip (latest:qt6)\npip3 install decoder-plus-plus[qt6]\n\n# Or, for a qt5 backport:\npip3 install decoder-plus-plus[qt5]\n\n# To leverage all features and plugins:\npip3 install decoder-plus-plus[extras]\n```\n\nFor a detailed installation guide, including platform-specific instructions, see the [Installation Guide](docs/INSTALL.md).\n\n## Overview\n\nThis section provides an overview about the individual ways of interacting with\n```Decoder++```. For additional usage information check out the ```Advanced Usage``` section.\n\n### Graphical User Interface\n\nThe graphical user interface provides two distinct interaction modes:\na ```main-window-mode``` and a ```dialog-mode```.\n\n![Decoder++ Screenshot](https://raw.githubusercontent.com/bytebutcher/decoder-plus-plus/master/images/dpp-preview-001.png)\n\nWhile the ```main-window-mode``` supports tabbing, the ```dialog-mode``` has the ability to return the transformed \ncontent to ```stdout``` ready for further processing. \nAs a result ```Decoder++``` can enhance other tools/scripts \nby providing a graphical user interface for flexible transformation of any input.\n\n![Decoder++ Screenshot](https://raw.githubusercontent.com/bytebutcher/decoder-plus-plus/master/images/dpp-preview-dialog.png)\n\nWhile ```Decoder++``` processes the entire input text by default, it allows for selective data transformation as well. \nTo transform only a specific portion of your text, simply highlight the necessary text segment in the input field \nand then apply the desired codec.\n\n![Decoder++ Screenshot](https://raw.githubusercontent.com/bytebutcher/decoder-plus-plus/master/images/dpp-selective-input.png)\n\n### Command Line\n\nIn addition to the graphical user interface Decoder++ also provides a command line interface:\n```bash\n$ dpp -e base64 -h sha1 \"Hello, world!\"\ne52d74c6d046c390345ae4343406b99587f2af0d\n```\n\n### Codecs and Scripts\n\n```Decoder++``` allows you to choose from a variety of codecs and scripts:\n\n* **Encode/Decode:**\n  - Base16, Base32, Base45, Base64, Base64 (URL-safe)\n  - Binary, Gzip, Hex, Html, JWT, HTTP64\n  - Octal, Url, Url+, Zlib\n* **Hashing:** \n  - Adler-32, Apache-Md5, CRC32, FreeBSD-NT\n  - Keccak224, Keccak256, Keccak384, Keccak512\n  - LM, Md2, Md4, Md5, NT, PHPass\n  - RipeMd160, Sha1, Sha3 224, Sha3 256, Sha3 384, Sha3 512\n  - Sha224, Sha256, Sha348, Sha512, Sun Md5\n* **Scripts:**\n  - Caesar, CSS-Minify, Custom Code, Extract URLs, Filter-Lines\n  - Identify File Format, Identify Hash Format, JS-Beautifier, JS-to-XML, JQ\n  - JSONify, JSONPath, HTML-Beautifier\n  - Little/Big-Endian Transform, Reformat Text, Remove Newlines, Remove Whitespaces\n  - Search and Replace, Split and Rejoin, Unescape/Escape String, XPath\n\n\nIn cases where you require a bit more flexibility ```Decoder++``` allows you to process your data with \ncustom scripts by using the ```Custom Code``` script:\n\n![Decoder++ Screenshot](https://raw.githubusercontent.com/bytebutcher/decoder-plus-plus/master/images/dpp-custom-code-script.png)\n\n## Advanced Usage\n\nThis section provides additional information about how the command line interface can be used.\n\n### Command Line Interface\n\nThe commandline interface gives easy access to all available codecs.\n\nTo list them the ```-l``` argument can be used. To narrow down the search \nthe ```-l``` argument accepts additional parameters which work as filter:\n\n```bash\n$ dpp -l base enc\n\nCodec                 Type\n-----                 ----\nbase16                encoder\nbase32                encoder\nbase64                encoder\n\n```\n```Decoder++``` distinguishes between encoders, decoders, hashers and scripts.\nLike the graphical user interface the command line interface allows the usage of multiple codecs in a row:\n```bash\n$ dpp \"H4sIAAXmeVsC//NIzcnJ11Eozy/KSVEEAObG5usNAAAA\" -d base64 -d gzip\nHello, world!\n```\n\nWhile encoders, decoders and hashers can be used right away, some scripts may require additional configuration.\nTo show all available options of a specific script add the ```help``` parameter:\n```\n$ dpp \"Hello, world!\" -s split_and_rejoin help\n\nSplit \u0026 Rejoin\n==============\n\n             Name  Value  Group            Required  Description\n             ----  -----  -----            --------  -----------\n   split_by_chars         split_behaviour  yes       the chars used at which to split the text\n  split_by_length  0      split_behaviour  yes       the length used at which to split the text\nrejoin_with_chars                          yes       the chars used to join the splitted text\n\n```\n\nTo configure a specific script the individual options need to be supplied as name-value pairs (e.g. ```search_term=\"Hello\"```):\n\n```\n$ dpp \"Hello, world!\" -s search_and_replace search_term=\"Hello\" replace_term=\"Hey\"\nHey, world!\n```\n\n## Contribute\n\nFeel free to open a new ticket for requesting features or reporting bugs. \nAlso don't hesitate to issue a pull-request for new features/plugins. \nMore information regarding Decoder++ development can be found in the \n[Development Guide](docs/DEVELOPMENT.md).\n\nThanks to \n* Tim Menapace (RIPEMD160, KECCAK256)\n* Robin Krumnow (ROT13)\n\n## Troubleshooting\n\n### Signals are not working on Mac OS\n\nWhen starting ```Decoder++``` in Mac OS signals are not working.\n\nThis might happen when ```PyQt6``` is installed using homebrew. \n\n### Can not start Decoder++ in Windows using CygWin\n\nWhen starting ```Decoder++``` in ```CygWin``` an error occurs:\n```\n  ModuleNotFoundError: No module named 'PyQt6'\n```\n\nThis might happen even if ```PyQt6``` is installed using pip. \nCurrently there is no fix for that. Instead it is recommended\nto start ```Decoder++``` using the Windows command line.\n\n### No Module PyQt6 \n\nWhen starting ```Decoder++``` the error ```No module named 'PyQt6.sig'``` is displayed on the console. \nThis may happen when there are competing versions of PyQt6 installed. Reinstalling PyQt6 should fix this error.\n\n```\n$ sudo pip3 uninstall PyQt6\n$ sudo pip3 install PyQt6\n```\n\n### Missing Qt6 libraries\n\nAt least in Ubuntu 22.04 it might be necessary to install the following packages using ```apt```:\n\n```\napt install libqt6core6 libqt6network6 libqt6openglwidgets6 libqt6widgets6\n```\n\n### X11-forwarding fails\n\nIn order to run dpp inside a container/virtual machine you may need to install the \n```qt6-qpa-plugins``` inside the container/virtual machine and configure the \n```QT_QPA_PLATFORM_PLUGIN_PATH``` accordingly:\n\n```\napt install qt6-qpa-plugins\nexport QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt6/plugins/platforms/\n``` \n\nSee the \u003ca href=\"https://github.com/bytebutcher/decoder-plus-plus/tree/master/docker\"\u003eDocker build and run scripts\u003c/a\u003e for more information regarding how to build and run a Decoder++ Docker container.\n\n## Inspired By\n* PortSwigger's Burp Decoder\n\n## Powered By\n\n* QtPy / PyQt5 / PyQt6\n* QtAwesome\n","funding_links":[],"categories":["Python (1887)","Python","Pentesting"],"sub_categories":["ARM"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytebutcher%2Fdecoder-plus-plus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbytebutcher%2Fdecoder-plus-plus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbytebutcher%2Fdecoder-plus-plus/lists"}