ptn1411/skill/nuitka-decryptor
Claude Code and agent skill by ptn1411/skill
- community
Checking that the SKILL.md file is still in the repository.
Reverse engineer and decrypt Nuitka-compiled Python applications. Extracts encryption keys from PE binaries (.pyd), analyzes binary constants, and bulk-decrypts XOR+Base64 encrypted source files. Use when given a compiled Python app with .encrypted source files, .pyd Nuitka modules, or asked to reverse engineer / decrypt app source code.
Install
npx vskill@latest install ptn1411/skill/nuitka-decryptorSKILL.md
Nuitka Decryptor Skill
Reverse engineer Nuitka-compiled Python apps: extract keys from PE binaries, decrypt XOR+Base64 source files.
Language rule: All skill instructions use English.Final summary presented to the user must be in Vietnamese.
How Nuitka App Encryption Works
Nuitka compiles Python → C → .exe / .pyd (Windows DLL). Some apps add a custom encryption layer:
Standard pattern (confirmed on VideoAIStudio v2.1.5):
| Property | Value | |
|---|---|---|
| Algorithm | XOR with repeating key | |
| Encoding | Base64 (standard) | |
| Key location | Nuitka marshalled constants in .rdata / .rsrc PE section | |
| Key format | ASCII string (e.g. BT_DEV_2025_SECURE) | |
| Formula | plaintext = XOR(base64_decode(ciphertext), repeating_key) |
Step 1 — Reconnaissance: Map the target
Before running any script, identify:
Trigger keywords that suggest this pattern:
.encryptedfiles alongside a.pydor.exeMANIFEST.txtlisting Python module pathsbase64+ XOR combo in network traffic or strings analysis- Nuitka strings (
__compiled__,nuitka,cp312-win_amd64) in binary
Step 2 — Binary Analysis
Run scripts/analyze_binary.py to surface key candidates:
What it finds:
- Printable strings containing
key,secret,encrypt,decrypt,token,cipher - 16/32-byte high-entropy byte sequences (potential AES keys)
- Base64-like strings (20–100 chars)
- Nuitka function name patterns (
load_encrypted,get_key,xor,b64decode) - Long ASCII strings > 32 chars (embedded key candidates)
Key discovery heuristic — if you see a string like:
→ This is almost certainly the XOR key. Proceed to Step 3.
Step 3 — Key Extraction via PE Resource
Run scripts/extract_key.py to pull marshalled constants from the PE .rsrc / .rdata section:
Known-plaintext attack on config file:
If config.encrypted[0] XOR { = key[0]:
PE resource parsing approach:
- Read PE header → find
.rsrcsection offset - Attempt
marshal.loads()on resource chunks - Search
.rdatafor key-sized (16/32B) high-entropy sequences
Step 4 — Decrypt All Sources
Once key is confirmed, run scripts/decrypt_all.py:
Decrypt formula (pure stdlib, no deps):
Step 5 — Verify & Analyze
After decryption, verify output:
What to look for in decrypted source:
- License validation logic (bypass candidates)
- API keys / tokens embedded in code
- Encryption keys for other data stores
- Backend endpoints not visible from network traffic
- Authentication bypass opportunities
- Authentication bypass opportunities
Step 7 — Keygen Development Support
If asked to create a keygen or extract license validation logic, use scripts/extract_keygen_data.py:
Keygen targets:
- HWID Retrieval: Identification of system-specific IDs (MachineGuid, MAC address, Disk Serial) used to bind licenses.
- Hashing Constants: Detection of MD5/SHA256 initialization constants, which indicate the hashing algorithm used for license generation.
- Secret Salts: High-entropy strings near license-related keywords often act as salts for hashing.
- License Logic: Strings like
trial,expired,activation_codehelp locate the validation routines.
Step 8 — Key Confirmation Test
Before bulk decryption, always verify the key on a known-structure file:
File Naming Convention
| Output | Filename | |
|---|---|---|
| Binary analysis | binary_analysis.txt | |
| Key extraction log | key_extraction.txt | |
| Confirmed key | key_final.txt | |
| Decrypt test | decrypt_test.txt | |
| Decrypted sources | decrypted_sources/<original_path>.py |
Workflow
Final Report to User (always in Vietnamese)
Anti-Patterns
| ❌ Don't | ✅ Do | |
|---|---|---|
| Hardcode target paths in scripts | Use --pyd, --encrypted-dir args | |
| Guess the key without verification | Always confirm on known-structure file first | |
| Skip binary analysis | analyze_binary.py often reveals key directly in strings | |
| Decrypt without checking MANIFEST | Some files may be absent — track success/fail counts | |
| Use only one section (.rsrc) | Check both .rsrc and .rdata for marshal blobs | |
| Present findings in English | Always deliver final summary in Vietnamese |
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingnuitka-decryptor/SKILL.md
Popularity
- Repository stars
- 150
- Repository forks
- 90
- 7-day trend score
- 25
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/ptn1411/skill/nuitka-decryptor)