decoder-plus-plus


Namedecoder-plus-plus JSON
Version 1.8.5 PyPI version JSON
download
home_pagehttps://github.com/bytebutcher/decoder-plus-plus
SummaryAn extensible application for penetration testers and software developers to decode/encode data into various formats.
upload_time2024-04-09 13:36:48
maintainerNone
docs_urlNone
authorbytebutcher
requires_pythonNone
licenseGPL-3.0
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![Decoder++ Logo](https://raw.githubusercontent.com/bytebutcher/decoder-plus-plus/master/images/dpp.png)

<a href="https://pypi.python.org/pypi/decoder-plus-plus"><img src="https://img.shields.io/pypi/v/decoder-plus-plus.svg"></a>
<a href="https://pypi.python.org/pypi/decoder-plus-plus"><img src="https://img.shields.io/pypi/dm/decoder-plus-plus"></a>
<a href="https://pypi.python.org/pypi/decoder-plus-plus"><img src="https://img.shields.io/pypi/pyversions/decoder-plus-plus.svg"></a>

# Decoder++

Decoder++ is an extensible application designed for penetration testers, software developers, 
and anyone in between looking to effortlessly decode and encode data across various formats. 
It includes a wide range of preinstalled scripts and codecs, smart decoding and format identification, 
and supports both graphical user interface (GUI) and command-line interface (CLI) operations.

## Quick Start

Get up and running with Decoder++ in just a few steps:

```bash
# Install using pip (latest:qt6)
pip3 install decoder-plus-plus[qt6]

# Or, for a qt5 backport:
pip3 install decoder-plus-plus[qt5]

# To leverage all features and plugins:
pip3 install decoder-plus-plus[extras]
```

For a detailed installation guide, including platform-specific instructions, see the [Installation Guide](docs/INSTALL.md).

## Overview

This section provides an overview about the individual ways of interacting with
```Decoder++```. For additional usage information check out the ```Advanced Usage``` section.

### Graphical User Interface

The graphical user interface provides two distinct interaction modes:
a ```main-window-mode``` and a ```dialog-mode```.

![Decoder++ Screenshot](https://raw.githubusercontent.com/bytebutcher/decoder-plus-plus/master/images/dpp-preview-001.png)

While the ```main-window-mode``` supports tabbing, the ```dialog-mode``` has the ability to return the transformed 
content to ```stdout``` ready for further processing. 
As a result ```Decoder++``` can enhance other tools/scripts 
by providing a graphical user interface for flexible transformation of any input.

![Decoder++ Screenshot](https://raw.githubusercontent.com/bytebutcher/decoder-plus-plus/master/images/dpp-preview-dialog.png)

While ```Decoder++``` processes the entire input text by default, it allows for selective data transformation as well. 
To transform only a specific portion of your text, simply highlight the necessary text segment in the input field 
and then apply the desired codec.

![Decoder++ Screenshot](https://raw.githubusercontent.com/bytebutcher/decoder-plus-plus/master/images/dpp-selective-input.png)

### Command Line

In addition to the graphical user interface Decoder++ also provides a command line interface:
```bash
$ dpp -e base64 -h sha1 "Hello, world!"
e52d74c6d046c390345ae4343406b99587f2af0d
```

### Codecs and Scripts

```Decoder++``` allows you to choose from a variety of codecs and scripts:

* **Encode/Decode:**
  - Base16, Base32, Base45, Base64, Base64 (URL-safe)
  - Binary, Gzip, Hex, Html, JWT, HTTP64
  - Octal, Url, Url+, Zlib
* **Hashing:** 
  - Adler-32, Apache-Md5, CRC32, FreeBSD-NT
  - Keccak224, Keccak256, Keccak384, Keccak512
  - LM, Md2, Md4, Md5, NT, PHPass
  - RipeMd160, Sha1, Sha3 224, Sha3 256, Sha3 384, Sha3 512
  - Sha224, Sha256, Sha348, Sha512, Sun Md5
* **Scripts:**
  - Caesar, CSS-Minify, Custom Code, Extract URLs, Filter-Lines
  - Identify File Format, Identify Hash Format, JS-Beautifier, JS-to-XML, JQ
  - JSONify, JSONPath, HTML-Beautifier
  - Little/Big-Endian Transform, Reformat Text, Remove Newlines, Remove Whitespaces
  - Search and Replace, Split and Rejoin, Unescape/Escape String, XPath


In cases where you require a bit more flexibility ```Decoder++``` allows you to process your data with 
custom scripts by using the ```Custom Code``` script:

![Decoder++ Screenshot](https://raw.githubusercontent.com/bytebutcher/decoder-plus-plus/master/images/dpp-custom-code-script.png)

## Advanced Usage

This section provides additional information about how the command line interface can be used.

### Command Line Interface

The commandline interface gives easy access to all available codecs.

To list them the ```-l``` argument can be used. To narrow down the search 
the ```-l``` argument accepts additional parameters which work as filter:

```bash
$ dpp -l base enc

Codec                 Type
-----                 ----
base16                encoder
base32                encoder
base64                encoder

```
```Decoder++``` distinguishes between encoders, decoders, hashers and scripts.
Like the graphical user interface the command line interface allows the usage of multiple codecs in a row:
```bash
$ dpp "H4sIAAXmeVsC//NIzcnJ11Eozy/KSVEEAObG5usNAAAA" -d base64 -d gzip
Hello, world!
```

While encoders, decoders and hashers can be used right away, some scripts may require additional configuration.
To show all available options of a specific script add the ```help``` parameter:
```
$ 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

```

To configure a specific script the individual options need to be supplied as name-value pairs (e.g. ```search_term="Hello"```):

```
$ dpp "Hello, world!" -s search_and_replace search_term="Hello" replace_term="Hey"
Hey, world!
```

## Contribute

Feel free to open a new ticket for requesting features or reporting bugs. 
Also don't hesitate to issue a pull-request for new features/plugins. 
More information regarding Decoder++ development can be found in the 
[Development Guide](docs/DEVELOPMENT.md).

Thanks to 
* Tim Menapace (RIPEMD160, KECCAK256)
* Robin Krumnow (ROT13)

## Troubleshooting

### Signals are not working on Mac OS

When starting ```Decoder++``` in Mac OS signals are not working.

This might happen when ```PyQt6``` is installed using homebrew. 

### Can not start Decoder++ in Windows using CygWin

When starting ```Decoder++``` in ```CygWin``` an error occurs:
```
  ModuleNotFoundError: No module named 'PyQt6'
```

This might happen even if ```PyQt6``` is installed using pip. 
Currently there is no fix for that. Instead it is recommended
to start ```Decoder++``` using the Windows command line.

### No Module PyQt6 

When starting ```Decoder++``` the error ```No module named 'PyQt6.sig'``` is displayed on the console. 
This may happen when there are competing versions of PyQt6 installed. Reinstalling PyQt6 should fix this error.

```
$ sudo pip3 uninstall PyQt6
$ sudo pip3 install PyQt6
```

### Missing Qt6 libraries

At least in Ubuntu 22.04 it might be necessary to install the following packages using ```apt```:

```
apt install libqt6core6 libqt6network6 libqt6openglwidgets6 libqt6widgets6
```

### X11-forwarding fails

In order to run dpp inside a container/virtual machine you may need to install the 
```qt6-qpa-plugins``` inside the container/virtual machine and configure the 
```QT_QPA_PLATFORM_PLUGIN_PATH``` accordingly:

```
apt install qt6-qpa-plugins
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt6/plugins/platforms/
``` 

See the <a href="https://github.com/bytebutcher/decoder-plus-plus/tree/master/docker">Docker build and run scripts</a> for more information regarding how to build and run a Decoder++ Docker container.

## Inspired By
* PortSwigger's Burp Decoder

## Powered By

* QtPy / PyQt5 / PyQt6
* QtAwesome



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/bytebutcher/decoder-plus-plus",
    "name": "decoder-plus-plus",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "bytebutcher",
    "author_email": "thomas.engel.web@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/10/20/90095fe2dbd08f2fb6a8dc1bfd2ee39b5f8abdc1e897840e69d7b2876711/decoder-plus-plus-1.8.5.tar.gz",
    "platform": null,
    "description": "![Decoder++ Logo](https://raw.githubusercontent.com/bytebutcher/decoder-plus-plus/master/images/dpp.png)\n\n<a href=\"https://pypi.python.org/pypi/decoder-plus-plus\"><img src=\"https://img.shields.io/pypi/v/decoder-plus-plus.svg\"></a>\n<a href=\"https://pypi.python.org/pypi/decoder-plus-plus\"><img src=\"https://img.shields.io/pypi/dm/decoder-plus-plus\"></a>\n<a href=\"https://pypi.python.org/pypi/decoder-plus-plus\"><img src=\"https://img.shields.io/pypi/pyversions/decoder-plus-plus.svg\"></a>\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 & 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 <a href=\"https://github.com/bytebutcher/decoder-plus-plus/tree/master/docker\">Docker build and run scripts</a> 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\n\n",
    "bugtrack_url": null,
    "license": "GPL-3.0",
    "summary": "An extensible application for penetration testers and software developers to decode/encode data into various formats.",
    "version": "1.8.5",
    "project_urls": {
        "Homepage": "https://github.com/bytebutcher/decoder-plus-plus"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9ee45e1a85e97909c4f529b08ae9356ff40859af90c98edbe86e75a10be4e1a5",
                "md5": "8bbd4ee4618e6f143654e4b2ad1d8fde",
                "sha256": "87109f3769edec8961f14a10d6eaa3b076c4959914c921687a6be9cf940bff28"
            },
            "downloads": -1,
            "filename": "decoder_plus_plus-1.8.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8bbd4ee4618e6f143654e4b2ad1d8fde",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 2202092,
            "upload_time": "2024-04-09T13:36:44",
            "upload_time_iso_8601": "2024-04-09T13:36:44.521248Z",
            "url": "https://files.pythonhosted.org/packages/9e/e4/5e1a85e97909c4f529b08ae9356ff40859af90c98edbe86e75a10be4e1a5/decoder_plus_plus-1.8.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "102090095fe2dbd08f2fb6a8dc1bfd2ee39b5f8abdc1e897840e69d7b2876711",
                "md5": "8a6b621b6a710b53a895009102e3f2ad",
                "sha256": "e83675cecca1568f4eaaeb7dcfbf4abda3722ff0eb186294779341c0a7a69f14"
            },
            "downloads": -1,
            "filename": "decoder-plus-plus-1.8.5.tar.gz",
            "has_sig": false,
            "md5_digest": "8a6b621b6a710b53a895009102e3f2ad",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 2015091,
            "upload_time": "2024-04-09T13:36:48",
            "upload_time_iso_8601": "2024-04-09T13:36:48.712944Z",
            "url": "https://files.pythonhosted.org/packages/10/20/90095fe2dbd08f2fb6a8dc1bfd2ee39b5f8abdc1e897840e69d7b2876711/decoder-plus-plus-1.8.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-09 13:36:48",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "bytebutcher",
    "github_project": "decoder-plus-plus",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "decoder-plus-plus"
}
        
Elapsed time: 0.22078s