SkillAgentSearch skills...

PycDecompiler

A Request Based Pyc decompiler that supports python 3.6+ - 3.13 decompilation.

Install / Use

/learn @rajveerexe/PycDecompiler
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

PYC Decompiler

<div align="center">

PYC Decompiler Banner

Marshal → PYC Converter & Python Bytecode Decompiler

Python Status License Visitors

A powerful utility for converting marshal files to PYC and decompiling Python bytecode back to source

FeaturesInstallationUsageCLI ModeLicense

</div>

📖 About

PYC Decompiler is a comprehensive Python utility designed for bytecode analysis and reverse engineering. It enables you to:

  • Convert marshal-based Python files into valid .pyc bytecode files
  • Decompile .pyc files back into readable Python source code
  • Handle multiple Python versions automatically (3.6 through 3.13)
  • Detect file types automatically and process accordingly

⚠️ Important: This tool operates strictly at the bytecode/marshal layer and does not crack encryption or bypass licensing mechanisms.

Use Cases

  • 🔍 Reverse engineering (educational purposes)
  • 🛡️ Malware analysis and security research
  • 📚 Bytecode research and Python internals learning
  • 🧪 Code recovery and archival
  • 🔧 Python internals debugging

⭐ Features

  • 🧠 Marshal → PYC Conversion - Transform marshal files into proper bytecode
  • 🧩 PYC → Source Decompilation - Recover readable Python source code
  • 🔢 Multi-Version Support - Compatible with Python 3.6 through 3.13
  • 🎯 Automatic Detection - Intelligently detects marshal and PYC files
  • Fast & Automated - Streamlined workflow with minimal manual intervention
  • 🖥️ Interactive Menu - User-friendly interface for easy operation
  • 🧪 CLI Mode - Command-line interface for scripting and automation
  • 🌐 PyLingual Backend - Powered by PyLingual decompilation service
  • 📦 Zero External Binaries - No need for separate decompiler installations

🔧 How It Works

Marshal / PYC File
       ↓
File Type Detection
       ↓
Version Detection
       ↓
Magic Header Injection (if marshal)
       ↓
Upload to PyLingual API
       ↓
Decompilation Process
       ↓
Recovered Python Source

Key Principles:

  • ✅ No VM patching required
  • ✅ No opcode tampering
  • ✅ Pure bytecode-level logic
  • ✅ Cloud-based decompilation engine

🐍 Supported Python Versions

| Version | Magic Number | Status | |---------|-------------|--------| | Python 3.6 | 33 0D 0D 0A | ✅ Supported | | Python 3.7 | 42 0D 0D 0A | ✅ Supported | | Python 3.8 | 55 0D 0D 0A | ✅ Supported | | Python 3.9 | 61 0D 0D 0A | ✅ Supported | | Python 3.10 | 6F 0D 0D 0A | ✅ Supported | | Python 3.11 | A7 0D 0D 0A | ✅ Supported | | Python 3.12 | CB 0D 0D 0A | ✅ Supported | | Python 3.13 | F3 0D 0D 0A | ✅ Supported |


📋 Requirements

  • Python 3.6 or higher
  • Internet connection (for PyLingual API access)
  • Dependencies:
    • requests - HTTP library for API communication

Install Dependencies

pip install requests

🚀 Installation

Method 1: Clone from GitHub

# Clone the repository
git clone https://github.com/rajveerexe/PycDecompiler.git

# Navigate to directory
cd PycDecompiler

# Install dependencies
pip install -r requirements.txt

# Run the decompiler
python PycDecompiler.py

Method 2: Direct Download

# Download the script
wget https://raw.githubusercontent.com/rajveerexe/PycDecompiler/main/PycDecompiler.py

# Install dependencies
pip install requests

# Run the script
python PycDecompiler.py

💻 Usage

Interactive Mode

Launch the interactive menu (recommended for beginners):

python PycDecompiler.py

Interactive Menu:

═══════════════════════════════════════════════════════
    ____        __    _                         __
   / __ \__  __/ /   (_)___  ____ ___  ______ _/ /
  / /_/ / / / / /   / / __ \/ __ `/ / / / __ `/ /
 / ____/ /_/ / /___/ / / / / /_/ / /_/ / /_/ / /
/_/    \__, /_____/_/_/ /_/\__, /\__,_/\__,_/_/
      /____/              /____/
═══════════════════════════════════════════════════════
                    P Y L I N G U A L
═══════════════════════════════════════════════════════

[ 1 ] Convert Marshal to PYC
[ 2 ] Decompile PYC to Python Source
[ 0 ] Exit

Option 1: Convert Marshal to PYC

  1. Select option 1 from the menu
  2. Enter the path to your marshal file (.py file containing marshal data)
  3. Select Python version (or use current version)
  4. The tool will generate a .pyc file

Example:

[ ? ] Select option: 1
[ ? ] Enter Marshal file path: obfuscated_script.py

Available Python Versions:
[ 1 ] Python 3.6
[ 2 ] Python 3.7
[ 3 ] Python 3.8
[ 4 ] Python 3.9
[ 5 ] Python 3.10
[ 6 ] Python 3.11
[ 7 ] Python 3.12
[ 8 ] Python 3.13
[ 0 ] Current Version (3.11)

[ ? ] Select version: 0
[ * ] Converting Marshal to PYC (Python 3.11)...
[ ✓ ] Saved: obfuscated_script.pyc
[ ✓ ] Done!

Option 2: Decompile PYC to Python Source

  1. Select option 2 from the menu
  2. Enter the path to your .pyc file
  3. Wait for the decompilation process (uploads to PyLingual API)
  4. Decompiled source will be saved as decoded_[filename].py

Example:

[ ? ] Select option: 2
[ ? ] Enter PYC file path: script.pyc

[ * ] Processing: script.pyc
[ ✓ ] File validated
[ ✓ ] Uploaded with identifier: abc123xyz456
[ 1 ] Stage: decompiling | Elapsed: 2.3s
[ 2 ] Stage: decompiling | Elapsed: 3.8s
[ ✓ ] Decompilation complete (Attempts: 2, Time: 3.85s)
[ ✓ ] Decompiled code saved to: ./decoded_script.py
[ ✓ ] Total execution time: 4.12s
[ ✓ ] Done!

🧪 CLI Mode

Basic PYC Decompilation

python PycDecompiler.py script.pyc

Marshal File Conversion + Decompilation

The tool automatically detects marshal files and converts them:

python PycDecompiler.py obfuscated_script.py

Output:

[ * ] Detected: Marshal file
[ * ] Converting Marshal to PYC (Python 3.11)...
[ ✓ ] Saved: obfuscated_script.pyc

[ * ] Now decompiling PYC...
[ * ] Processing: obfuscated_script.pyc
[ ✓ ] Decompiled code saved to: decoded_obfuscated_script.py
[ ✓ ] Done!

Specify Python Version

python PycDecompiler.py marshal_file.py 3.10

Batch Processing

# Process all PYC files in directory
for file in *.pyc; do
    python PycDecompiler.py "$file"
done
# Process all marshal files
for file in obfuscated_*.py; do
    python PycDecompiler.py "$file" 3.11
done

🔍 Technical Details

Marshal Detection

The tool automatically detects marshal files by:

  1. Checking file extension (.py)
  2. Reading file content and searching for marshal keyword
  3. If detected, converts to PYC before decompilation

PYC Magic Numbers

Each Python version has a unique magic number (first 4 bytes of .pyc file):

magic_map = {
    "3.6": b"3\r\r\n\x8bq\x98d\x0c\x00\x00\x00\xe3\x00\x00\x00",
    "3.7": b"B\r\r\n\x00\x00\x00\x00\x8bq\x98d\x0c\x00\x00\x00",
    "3.8": b"U\r\r\n\x00\x00\x00\x00\tq\x98d\x0b\x00\x00\x00",
    "3.9": b"a\r\r\n\x00\x00\x00\x00\tq\x98d\x0b\x00\x00\x00",
    "3.10": b"o\r\r\n\x00\x00\x00\x00\tq\x98d\x0b\x00\x00\x00",
    "3.11": b"\xa7\r\r\n\x00\x00\x00\x004\x0eAi\n\x00\x00\x00",
    "3.12": b"\xcb\r\r\n\x00\x00\x00\x00{\x0eAi\n\x00\x00\x00",
    "3.13": b"\xf3\r\r\n\x00\x00\x00\x00\x90\x0eAi\n\x00\x00\x00",
}

Decompilation Process

  1. Upload: File is uploaded to PyLingual API
  2. Processing: Backend analyzes bytecode structure
  3. Decompilation: Bytecode is reverse-engineered to source
  4. Retrieval: Decompiled code is downloaded and saved

⚠️ Legal Disclaimer

This project is intended for educational and research purposes only.

Important Guidelines

  • ✅ You are responsible for complying with local laws and regulations
  • ✅ Only decompile code you own or have explicit permission to analyze
  • ✅ Respect intellectual property and licensing agreements
  • ❌ Do not use for DRM bypass or license cracking
  • ❌ Do not use for commercial piracy or unauthorized distribution
  • ❌ Do not violate software licenses or terms of service
  • ❌ The author assumes no responsibility for misuse

Use responsibly and ethically.

🔒 Note: This tool does NOT break encryption, bypass obfuscation, or crack protected software. It works only on standard Python bytecode.


🛠️ Troubleshooting

Common Issues

1. Unsupported Python Version

Error: Invalid Python version: 3.5

Solution: Use Python 3.6 or higher. Check available versions with:

python --version

2. File Not Found

[ ! ] File not found: script.pyc

Solution:

  • Verify the file path is correct
  • Use absolute paths if relative paths fail
  • Check file permissions

3. Not a Valid Marshal File

[ ! ] Not a valid marshal file

Solution:

  • Ensure the file contains marshal data
  • Try opening the file to verify it's a Python marshal file
  • Some obfuscated files may not be standard marshal format

4. Decompilation Failed

[ ! ] Decompilation Error: Upload failed with status code: 502

Possible Causes:

  • PyLingual API is temporarily down
  • Network connectivity issues
  • File is corrupted or heavily obfuscated

Solution:

  • Wait a few minutes and try again
  • Check your internet connection
  • Verify the .pyc file is valid

5. Service Unavailable (502)

[ ! ] Decompilation Error: Service temporarily unavailable (502)

**Solu

Related Skills

View on GitHub
GitHub Stars4
CategoryCustomer
Updated1d ago
Forks2

Languages

Python

Security Score

90/100

Audited on Apr 2, 2026

No findings