Skip to main content

ctf-encoding-chains

Encoding detection and multi-layer decoding chains for CTF challenges. Provides Python templates for automated encoding identification, iterative base64/hex/binary/URL/rot13 decoding, XOR brute-force with frequency analysis, nested encoding unwrapping, custom alphabet detection, and esoteric encoding systems. Use when encountering unknown encodings in CTF data, when peeling multi-layer encoding wrappers, when brute-forcing XOR keys using character frequency, or when building automated decoders for misc/crypto challenges.

Quellinformationen

Repository
zebbern/termstack
Letzte Quellaktivität
10. April 2026 um 22:53
Erkannte Sprache von SKILL.md
Englisch
Sterne
5
Forks
3

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
3 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
ctf-encoding-chains
description
Encoding detection and multi-layer decoding chains for CTF challenges. Provides Python templates for automated encoding identification, iterative base64/hex/binary/URL/rot13 decoding, XOR brute-force with frequency analysis, nested encoding unwrapping, custom alphabet detection, and esoteric encoding systems. Use when encountering unknown encodings in CTF data, when peeling multi-layer encoding wrappers, when brute-forcing XOR keys using character frequency, or when building automated decoders for misc/crypto challenges.
tags
["ctf","encoding","base64","hex","xor","decoding","frequency-analysis","cipher"]
triggers
["decode encoding","base64 decode","hex decode","encoding chain","multi-layer encoding","frequency analysis","unknown encoding","ctf misc decode"]
category
analysis
os
linux
# ctf-encoding-chains ## When to Use - Encountering data in unknown encoding format(s) - Peeling multiple layers of encoding (e.g., base64 → hex → rot13 → flag) - Brute-forcing XOR keys using frequency analysis or known plaintext - Identifying encoding type from raw bytes or strings - Decoding esoteric/unusual encoding schemes (Morse, Braille, NATO) - Processing flag fragments that use different encodings - Automating trial-and-error decoding pipelines - Working with custom alphabets or substitution ciphers ## Quick Start ```python import base64 # Auto-detect and decode data = 'ZmxhZ3t0ZXN0fQ==' print(base64.b64decode(data)) # b'flag{test}' ``` ```python # Iterative multi-layer decoder from encoding_chains import auto_decode result = auto_decode('NjI2MTczNjUzNjM0N2I2NjZjNjE2Nzdk') # Detects: base64 → hex → ASCII → 'base64{flag}' ``` ## Encoding Identification Checklist ``` Unknown data? │ ├─ Only [A-Za-z0-9+/]= → Base64 ├─ Only [0-9a-fA-F] → Hex ├─ Only [01] (groups of 8) → Binary ├─ Only [A-Z2-7]= → Base32 ├─ Contains %XX → URL encoding ├─ .- and spaces → Morse code ├─ Unicode dots (⠁⠃⠉) → Braille ├─ Word list (alpha bravo) → NATO ├─ Looks like English but wrong letters → ROT13 / Caesar / Substitution └─ Nested layers → Use auto_decode() iteratively ``` ## Technique Reference Files Full templates with copy-paste code are in the `references/` directory — loaded on demand, not into context: | Technique | Reference File | Key Templates | | ------------------------ | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | | **Detection & Decoders** | [references/detection-decoders.md](references/detection-decoders.md) | Signature-based detection, printability scoring, iterative multi-layer auto_decode, ROT/Caesar brute-force | | **Ciphers & Esoteric** | [references/cipher-esoteric.md](references/cipher-esoteric.md) | Substitution cipher solver, XOR frequency analysis, Morse code, Braille, NATO, base conversion, pipeline builder | > **Usage**: When you need a specific technique, read the corresponding reference file for the full template. ## Common Pitfalls - Base64 detection can false-positive on hex strings — check `len % 4 == 0` and decode validity - Printability scoring threshold matters: 0.7 for readable text, 0.5 for mixed content - ROT13 is just ROT with shift=13, but always try all 26 shifts for Caesar - XOR frequency analysis needs sufficient ciphertext length (>100 bytes) - Multi-layer decoding can loop if two encodings produce each other — cap depth at 20 ## Examples ### Example 1: Triple-Encoded Flag ```python data = 'VjJ4a1UxTnRWa2RUYms1cVVsUkdXRlpyVmtkT1JscDFXa2M1VjAxV1ducFZNbmhMWVdzeFJXRkdXbGRpYTNCMg==' chain = auto_decode(data) for enc, val in chain: print(f'{enc}: {val[:80]}') ``` ### Example 2: XOR + Base64 ```python import base64 ct = base64.b64decode('GhscHR4JCw==') for key in range(256): pt = bytes(b ^ key for b in ct) if b'flag' in pt: print(f'Key: {hex(key)}, Flag: {pt.decode()}') ```
Auf GitHub ansehen