multidecoder


Namemultidecoder JSON
Version 1.6.2 PyPI version JSON
download
home_pagehttps://github.com/CybercentreCanada/Multidecoder
SummaryA context preserving IOC extraction library
upload_time2024-12-04 20:33:21
maintainerNone
docs_urlNone
authorCCCS Assemblyline development team
requires_python>=3.8
licenseMIT
keywords malware analysis gc canada cse-cst cse cst cyber cccs
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Multidecoder

<a href="https://pypi.org/project/multidecoder/#history"><img src="https://img.shields.io/pypi/v/multidecoder.svg" alt="Latest Stable Release"></a>

Multidecoder is a python library and command line tool for extracting indicators of compromise (IOCs) from a file.
Multidecoder preserves the context of where and how an IOC is found to allow automated detection of patterns of obfuscation.
Multidecoder is currently in beta, and uses semantic versioning to indicate compatability between releases.

Indicators of compromise extracted by Multidecoder:
- network IOCS: urls, domains, emails, ip addressses
- executable filenames
- embedded PowerShell
- embedded PE files
- a customizable set of keywords

Deobfuscations and decodings supported:
- base64 encoding
- hexadecimal encoding
- string concatenation
- powershell escape characters

## Installing

Multidecoder can be installed from pypi using pip:
```
pip install -U multidecoder
```

Alternatly, it can also be installed from the repository:
```
pip install -U https://github.com/CybercentreCanada/Multidecoder/archive/main.zip
```

To test the latest development version, install from the dev branch:
```
pip install -U https://github.com/CybercenterCanada/Multidecoder/archive/dev.zip
```

## Command Line

After being installed Multidecoder can be run on a file from the command-line
```
> multidecoder file
```
which will output a list of indicators found.
Indicators are printed one per line, with a string representation of the context of the indicator followed by the indicator.

The raw json result can be output with the `--json` flag
```
> multidecoder --json file
```

if no filename is given multidecoder takes its standard input as the file to be scanned.

## Python library

Multidecoder can be used as a python library through the Multidecoder class,
which can scan data to give a dictionary tree similar to the command-line json output.
```
from multidecoder.multidecoder import Multidecoder

md = Multidecoder()
context_tree = md.scan(data)
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/CybercentreCanada/Multidecoder",
    "name": "multidecoder",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "malware, analysis, gc, canada, cse-cst, cse, cst, cyber, cccs",
    "author": "CCCS Assemblyline development team",
    "author_email": "assemblyline@cyber.gc.ca",
    "download_url": "https://files.pythonhosted.org/packages/87/4f/2bd40f726ef9a4735f780b9e63d063d873d208aff8c23ff696272c7b9e9f/multidecoder-1.6.2.tar.gz",
    "platform": null,
    "description": "# Multidecoder\n\n<a href=\"https://pypi.org/project/multidecoder/#history\"><img src=\"https://img.shields.io/pypi/v/multidecoder.svg\" alt=\"Latest Stable Release\"></a>\n\nMultidecoder is a python library and command line tool for extracting indicators of compromise (IOCs) from a file.\nMultidecoder preserves the context of where and how an IOC is found to allow automated detection of patterns of obfuscation.\nMultidecoder is currently in beta, and uses semantic versioning to indicate compatability between releases.\n\nIndicators of compromise extracted by Multidecoder:\n- network IOCS: urls, domains, emails, ip addressses\n- executable filenames\n- embedded PowerShell\n- embedded PE files\n- a customizable set of keywords\n\nDeobfuscations and decodings supported:\n- base64 encoding\n- hexadecimal encoding\n- string concatenation\n- powershell escape characters\n\n## Installing\n\nMultidecoder can be installed from pypi using pip:\n```\npip install -U multidecoder\n```\n\nAlternatly, it can also be installed from the repository:\n```\npip install -U https://github.com/CybercentreCanada/Multidecoder/archive/main.zip\n```\n\nTo test the latest development version, install from the dev branch:\n```\npip install -U https://github.com/CybercenterCanada/Multidecoder/archive/dev.zip\n```\n\n## Command Line\n\nAfter being installed Multidecoder can be run on a file from the command-line\n```\n> multidecoder file\n```\nwhich will output a list of indicators found.\nIndicators are printed one per line, with a string representation of the context of the indicator followed by the indicator.\n\nThe raw json result can be output with the `--json` flag\n```\n> multidecoder --json file\n```\n\nif no filename is given multidecoder takes its standard input as the file to be scanned.\n\n## Python library\n\nMultidecoder can be used as a python library through the Multidecoder class,\nwhich can scan data to give a dictionary tree similar to the command-line json output.\n```\nfrom multidecoder.multidecoder import Multidecoder\n\nmd = Multidecoder()\ncontext_tree = md.scan(data)\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A context preserving IOC extraction library",
    "version": "1.6.2",
    "project_urls": {
        "Bug Tracker": "https://github.com/CybercentreCanada/Multidecoder/issues",
        "Homepage": "https://github.com/CybercentreCanada/Multidecoder"
    },
    "split_keywords": [
        "malware",
        " analysis",
        " gc",
        " canada",
        " cse-cst",
        " cse",
        " cst",
        " cyber",
        " cccs"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3ba6818890539a6f1120e3ce81277e48e3274ed549c2395a9a3ca13e1c68f5b3",
                "md5": "aa8e64aed29e3d6278cce6d1cc612f5c",
                "sha256": "44cc5f6ba2a38dabffcc6bc9cfb5c18ba6d16cd45ec7a41235bde4a49ca3f1f1"
            },
            "downloads": -1,
            "filename": "multidecoder-1.6.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "aa8e64aed29e3d6278cce6d1cc612f5c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 111277,
            "upload_time": "2024-12-04T20:33:19",
            "upload_time_iso_8601": "2024-12-04T20:33:19.989506Z",
            "url": "https://files.pythonhosted.org/packages/3b/a6/818890539a6f1120e3ce81277e48e3274ed549c2395a9a3ca13e1c68f5b3/multidecoder-1.6.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "874f2bd40f726ef9a4735f780b9e63d063d873d208aff8c23ff696272c7b9e9f",
                "md5": "e5ef96373f47ce4a5257026351db2ba0",
                "sha256": "e29b6fe6518766df932b14d4e5ec40e8da4d8939847f04eb1576b296456ee7fc"
            },
            "downloads": -1,
            "filename": "multidecoder-1.6.2.tar.gz",
            "has_sig": false,
            "md5_digest": "e5ef96373f47ce4a5257026351db2ba0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 96832,
            "upload_time": "2024-12-04T20:33:21",
            "upload_time_iso_8601": "2024-12-04T20:33:21.039658Z",
            "url": "https://files.pythonhosted.org/packages/87/4f/2bd40f726ef9a4735f780b9e63d063d873d208aff8c23ff696272c7b9e9f/multidecoder-1.6.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-04 20:33:21",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "CybercentreCanada",
    "github_project": "Multidecoder",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "tox": true,
    "lcname": "multidecoder"
}
        
Elapsed time: 7.12930s