<p align="center">
<a href="https://visitorbadge.io/status?path=https%3A%2F%2Fgithub.com%2Fserfend%2Fpydumpck%2F"><img src="https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2Fserfend%2Fpydumpck%2F&labelColor=%23697689&countColor=%23ff8a65&style=plastic&labelStyle=none" /></a>
<a href="https://pypi.python.org/pypi/pydumpck/"><img alt="pypi version" src="https://img.shields.io/pypi/v/pydumpck.svg" /></a>
<a href="https://pypistats.org/packages/pydumpck"><img alt="pypi download" src="https://img.shields.io/pypi/dm/pydumpck.svg" /></a>
<a href="https://github.com/serfend/pydumpck/releases"><img alt="GitHub release" src="https://img.shields.io/github/release/serfend/pydumpck.svg?style=flat-square" /></a>
<a href="https://github.com/serfend/pydumpck/releases"><img alt="GitHub All Releases" src="https://img.shields.io/github/downloads/serfend/pydumpck/total.svg?style=flat-square&color=%2364ff82" /></a>
<a href="https://github.com/serfend/pydumpck/commits"><img alt="GitHub last commit" src="https://img.shields.io/github/last-commit/serfend/pydumpck.svg?style=flat-square" /></a>
<a href="https://github.com/serfend/pydumpck/actions/workflows/pytest.yml"><img alt="GitHub Workflow Status" src="https://github.com/serfend/pydumpck/actions/workflows/pytest.yml/badge.svg" /></a>
</p>
![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white)![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black)![Ubuntu](https://img.shields.io/badge/Ubuntu-E95420?style=for-the-badge&logo=ubuntu&logoColor=white)![Kali](https://img.shields.io/badge/Kali-268BEE?style=for-the-badge&logo=kalilinux&logoColor=white)![FreeBSD](https://img.shields.io/badge/-FreeBSD-%23870000?style=for-the-badge&logo=freebsd&logoColor=white)![Deepin](https://img.shields.io/badge/Deepin-007CFF?style=for-the-badge&logo=deepin&logoColor=white)![Debian](https://img.shields.io/badge/Debian-D70A53?style=for-the-badge&logo=debian&logoColor=white)![Cent OS](https://img.shields.io/badge/cent%20os-002260?style=for-the-badge&logo=centos&logoColor=F0F0F0)
# What?
pydumpck is a multi-threads tool for decompile exe,elf,pyz,pyc packed by python which is base on `pycdc` and `uncompyle6`.sometimes its py-file result not exactly right ,maybe could use uncompyle6.
## Install
```shell
pip install pydumpck
```
## Usage
```shell
usage: pydumpck [-h] [-o OUTPUT_DIRECTORY] [-w THREAD] [-t TIMEOUT] [--session-timeout TIMEOUT_SESSION]
[-y TARGET_FILE_TYPE] [-d [DECOMPILE_FILE ...]] [--header [STRUCT_HEADERS ...]] [-v [SHOW_VERSION]]
[-p [PLUGIN ...]]
[target_file]
pydumpck is a multi-threads tool for decompile exe,elf,pyz,pyc packed by python which is base on pycdc and
uncompyle6.sometimes its py-file result not exactly right ,maybe could use uncompyle6.
positional arguments:
target_file file to extract or decompiler,combine with -y for type select.
options:
-h, --help show this help message and exit
-o OUTPUT_DIRECTORY, --output OUTPUT_DIRECTORY
output archive file to (default: output_2938294).
-w THREAD, --thread THREAD
thread count for running (default: 0) cpu-count * 8.
-t TIMEOUT, --timeout TIMEOUT
timeout running single decompiler (default: 10).
--session-timeout TIMEOUT_SESSION
timeout running total task (default: 10).
-y TARGET_FILE_TYPE, --type TARGET_FILE_TYPE
file-type of input file,can use pe,exe,elf,pyc,pyz (default: None : auto guess).
-d [DECOMPILE_FILE ...], --decompile_file [DECOMPILE_FILE ...]
only decompile referred file for quick complete (default: None).
--header [STRUCT_HEADERS ...]
specify pyc header hex-string (default: None).if not set , pydumpck will use struct.pyc's
header(if possible) and default header.eg:6f0d0d0a 00000000 00000000 ffffffff
-v [SHOW_VERSION], --version [SHOW_VERSION]
show version of package
-p [PLUGIN ...], --plugin [PLUGIN ...]
enable decompiler plugins,split by space .example: `--plugin pycdc uncompyle6` (default:
['pycdc']).available:pycdc,uncompyle6
```
## Quick Start
```shell
pydumpck xxx.exe
pydumpck xxx.elf
pydumpck xxx.pyc
pydumpck xxx.pyz
pydumpck xxx.exe --output ./output --thread 8 --timeout 10
```
## Example
- `-p/--plugin` specified which plugin to use for decompile (pycdc|uncompyle6)
`pydumpck xxx.exe -p uncompyle6`
`pydumpck xxx.exe -p pycdc uncompyle6`
- `-d/--decompile_file` specified which file(s) to decompile for a faster run
`pydumpck xxx.exe -d main` for only target `main.py`
`pydumpck xxx.exe -d main lib_base64 secert` for targets `main.py` and `lib_base64.py` and `secert.py`
## Demo
- pyc with header been tampered with
- (Warning:gif with size 5MB)![pyc-fix_header-demo](https://raw.githubusercontent.com/serfend/res.image.reference/main/pyc-fix_header-demo.gif)
## Notice
> `pycdc` speed is more than 10 times faster than `uncompyle6` , and `uncompyle6` is not support for python that version above 3.8.
>
> however `pycdc` sometimes return a not precisely right result.
>
> in pydumpck , you can use `--plugin uncompyle6` for single-use or `--plugin pycdc uncompyle6` for both-use.
## Status
![Alt](https://repobeats.axiom.co/api/embed/013759c6315338178a2643de0bca01826fb39a14.svg "Repobeats analytics image")
Raw data
{
"_id": null,
"home_page": "https://github.com/serfend/pydumpck",
"name": "pydumpck",
"maintainer": null,
"docs_url": null,
"requires_python": "<4,>=3.7",
"maintainer_email": null,
"keywords": "pydumpck, decomplier, pe, elf, pyc, pyz",
"author": "serfend",
"author_email": "serfend@foxmail.com",
"download_url": "https://files.pythonhosted.org/packages/11/72/65a4395d86ca61123392e4be2cf3fa81618de17a2fb9998144e878dbab5c/pydumpck-1.20.1.tar.gz",
"platform": "any",
"description": "\n\n<p align=\"center\">\n <a href=\"https://visitorbadge.io/status?path=https%3A%2F%2Fgithub.com%2Fserfend%2Fpydumpck%2F\"><img src=\"https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2Fserfend%2Fpydumpck%2F&labelColor=%23697689&countColor=%23ff8a65&style=plastic&labelStyle=none\" /></a> \n <a href=\"https://pypi.python.org/pypi/pydumpck/\"><img alt=\"pypi version\" src=\"https://img.shields.io/pypi/v/pydumpck.svg\" /></a> \n <a href=\"https://pypistats.org/packages/pydumpck\"><img alt=\"pypi download\" src=\"https://img.shields.io/pypi/dm/pydumpck.svg\" /></a>\n <a href=\"https://github.com/serfend/pydumpck/releases\"><img alt=\"GitHub release\" src=\"https://img.shields.io/github/release/serfend/pydumpck.svg?style=flat-square\" /></a>\n <a href=\"https://github.com/serfend/pydumpck/releases\"><img alt=\"GitHub All Releases\" src=\"https://img.shields.io/github/downloads/serfend/pydumpck/total.svg?style=flat-square&color=%2364ff82\" /></a>\n <a href=\"https://github.com/serfend/pydumpck/commits\"><img alt=\"GitHub last commit\" src=\"https://img.shields.io/github/last-commit/serfend/pydumpck.svg?style=flat-square\" /></a>\n <a href=\"https://github.com/serfend/pydumpck/actions/workflows/pytest.yml\"><img alt=\"GitHub Workflow Status\" src=\"https://github.com/serfend/pydumpck/actions/workflows/pytest.yml/badge.svg\" /></a>\n</p>\n\n\n\n\n![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white)![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black)![Ubuntu](https://img.shields.io/badge/Ubuntu-E95420?style=for-the-badge&logo=ubuntu&logoColor=white)![Kali](https://img.shields.io/badge/Kali-268BEE?style=for-the-badge&logo=kalilinux&logoColor=white)![FreeBSD](https://img.shields.io/badge/-FreeBSD-%23870000?style=for-the-badge&logo=freebsd&logoColor=white)![Deepin](https://img.shields.io/badge/Deepin-007CFF?style=for-the-badge&logo=deepin&logoColor=white)![Debian](https://img.shields.io/badge/Debian-D70A53?style=for-the-badge&logo=debian&logoColor=white)![Cent OS](https://img.shields.io/badge/cent%20os-002260?style=for-the-badge&logo=centos&logoColor=F0F0F0)\n\n# What?\n\npydumpck is a multi-threads tool for decompile exe,elf,pyz,pyc packed by python which is base on `pycdc` and `uncompyle6`.sometimes its py-file result not exactly right ,maybe could use uncompyle6.\n\n\n\n## Install\n\n```shell\npip install pydumpck\n```\n\n\n\n## Usage\n\n```shell\nusage: pydumpck [-h] [-o OUTPUT_DIRECTORY] [-w THREAD] [-t TIMEOUT] [--session-timeout TIMEOUT_SESSION]\n [-y TARGET_FILE_TYPE] [-d [DECOMPILE_FILE ...]] [--header [STRUCT_HEADERS ...]] [-v [SHOW_VERSION]]\n [-p [PLUGIN ...]]\n [target_file]\n\npydumpck is a multi-threads tool for decompile exe,elf,pyz,pyc packed by python which is base on pycdc and\nuncompyle6.sometimes its py-file result not exactly right ,maybe could use uncompyle6.\n\npositional arguments:\n target_file file to extract or decompiler,combine with -y for type select.\n\noptions:\n -h, --help show this help message and exit\n -o OUTPUT_DIRECTORY, --output OUTPUT_DIRECTORY\n output archive file to (default: output_2938294).\n -w THREAD, --thread THREAD\n thread count for running (default: 0) cpu-count * 8.\n -t TIMEOUT, --timeout TIMEOUT\n timeout running single decompiler (default: 10).\n --session-timeout TIMEOUT_SESSION\n timeout running total task (default: 10).\n -y TARGET_FILE_TYPE, --type TARGET_FILE_TYPE\n file-type of input file,can use pe,exe,elf,pyc,pyz (default: None : auto guess).\n -d [DECOMPILE_FILE ...], --decompile_file [DECOMPILE_FILE ...]\n only decompile referred file for quick complete (default: None).\n --header [STRUCT_HEADERS ...]\n specify pyc header hex-string (default: None).if not set , pydumpck will use struct.pyc's\n header(if possible) and default header.eg:6f0d0d0a 00000000 00000000 ffffffff\n -v [SHOW_VERSION], --version [SHOW_VERSION]\n show version of package\n -p [PLUGIN ...], --plugin [PLUGIN ...]\n enable decompiler plugins,split by space .example: `--plugin pycdc uncompyle6` (default:\n ['pycdc']).available:pycdc,uncompyle6\n```\n\n\n\n\n\n## Quick Start\n\n```shell\npydumpck xxx.exe\npydumpck xxx.elf\npydumpck xxx.pyc\npydumpck xxx.pyz\npydumpck xxx.exe --output ./output --thread 8 --timeout 10\n```\n\n\n\n## Example\n\n- `-p/--plugin` specified which plugin to use for decompile (pycdc|uncompyle6)\n\n`pydumpck xxx.exe -p uncompyle6`\n\n`pydumpck xxx.exe -p pycdc uncompyle6`\n\n- `-d/--decompile_file` specified which file(s) to decompile for a faster run\n\n`pydumpck xxx.exe -d main` for only target `main.py`\n\n`pydumpck xxx.exe -d main lib_base64 secert` for targets `main.py` and `lib_base64.py` and `secert.py`\n\n\n\n## Demo\n\n- pyc with header been tampered with\n - (Warning:gif with size 5MB)![pyc-fix_header-demo](https://raw.githubusercontent.com/serfend/res.image.reference/main/pyc-fix_header-demo.gif)\n\n\n\n## Notice\n\n> `pycdc` speed is more than 10 times faster than `uncompyle6` , and `uncompyle6` is not support for python that version above 3.8.\n>\n> however `pycdc` sometimes return a not precisely right result.\n>\n> in pydumpck , you can use `--plugin uncompyle6` for single-use or `--plugin pycdc uncompyle6` for both-use.\n\n\n\n## Status\n\n![Alt](https://repobeats.axiom.co/api/embed/013759c6315338178a2643de0bca01826fb39a14.svg \"Repobeats analytics image\")\n",
"bugtrack_url": null,
"license": "MIT Licence",
"summary": "pydumpck is a multi-threads tool for decompile exe,elf,pyz,pyc packed by python which is base on pycdc and uncompyle6.sometimes its py-file result not exactly right ,maybe could use uncompyle6.",
"version": "1.20.1",
"project_urls": {
"Homepage": "https://github.com/serfend/pydumpck"
},
"split_keywords": [
"pydumpck",
" decomplier",
" pe",
" elf",
" pyc",
" pyz"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "13676f2aaf897be677ce75665a560df0cad4031566cc4ebfe2fe4cac2fcf5e29",
"md5": "e723948c99a2539f75c0474671ccd440",
"sha256": "1dd493f348a2721a118c00c6739b0cf14746274b55a3bc78b495a02eaf343160"
},
"downloads": -1,
"filename": "pydumpck-1.20.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e723948c99a2539f75c0474671ccd440",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4,>=3.7",
"size": 686434,
"upload_time": "2024-05-19T01:44:12",
"upload_time_iso_8601": "2024-05-19T01:44:12.433844Z",
"url": "https://files.pythonhosted.org/packages/13/67/6f2aaf897be677ce75665a560df0cad4031566cc4ebfe2fe4cac2fcf5e29/pydumpck-1.20.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "117265a4395d86ca61123392e4be2cf3fa81618de17a2fb9998144e878dbab5c",
"md5": "e7841bbd799847713d48e857066b7b36",
"sha256": "b68b403000e487d9a676dac39e5e6d780383009a7658e90002b2292678f0e34f"
},
"downloads": -1,
"filename": "pydumpck-1.20.1.tar.gz",
"has_sig": false,
"md5_digest": "e7841bbd799847713d48e857066b7b36",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4,>=3.7",
"size": 682765,
"upload_time": "2024-05-19T01:44:14",
"upload_time_iso_8601": "2024-05-19T01:44:14.768705Z",
"url": "https://files.pythonhosted.org/packages/11/72/65a4395d86ca61123392e4be2cf3fa81618de17a2fb9998144e878dbab5c/pydumpck-1.20.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-19 01:44:14",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "serfend",
"github_project": "pydumpck",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "sgtpyutils",
"specs": [
[
">=",
"1.19.10"
]
]
},
{
"name": "pyinstaller",
"specs": [
[
">=",
"5.10.1"
]
]
},
{
"name": "tinyaes",
"specs": []
},
{
"name": "uncompyle6",
"specs": [
[
">=",
"3.9.0"
]
]
},
{
"name": "xdis",
"specs": [
[
">=",
"6.0.5"
]
]
}
],
"lcname": "pydumpck"
}