| name | misc |
| description | Solve CTF misc challenges: encoding chains, esoteric programming languages, QR codes, logic puzzles, and anything that doesn't fit crypto/forensics/stego/web/pwn/reverse/osint. Use when you see: Brainfuck (+[->), Ook!, Whitespace, JSFuck, QR/barcodes, multi-layer encoding (Base64->hex->ROT13), or "what encoding is this". Triggers: "decode this", "esoteric language", "QR code", "barcode", "encoding chain", "CyberChef", unusual character sets. Tools: CyberChef, zbarimg, dcode.fr, online interpreters. |
CTF Misc
Analyze and solve miscellaneous challenges.
When to Use
Use this command for challenges involving:
- Encoding chains
- Esoteric programming languages
- QR codes and barcodes
- Logic puzzles
- Challenges that don't fit other categories
Bundled Scripts
- check-tools.sh — Verify required misc tools are installed
- run-decode.sh — Multi-encoding decoder: tries Base64, Base32, hex, ROT13, URL, binary. Detects encoding type, attempts recursive decoding chains, and searches for flags. Outputs JSON with all decoded results.
Instructions
-
First check tool availability: bash scripts/check-tools.sh
-
For encoding detection and decoding (outputs structured JSON):
bash scripts/run-decode.sh <encoded-string>
bash scripts/run-decode.sh encoded.txt
JSON output includes:
detected_encoding: what the input looks like (base64, hex, binary, etc.)
decodings[]: all successful decodings with confidence levels
chains[]: multi-step decoding results (e.g., base64 → hex → plaintext)
flags: any flag patterns found in decoded output
has_flag: true if flag found
The script automatically tries chaining: if Base64 decoding produces another encoded string, it tries decoding that too.
-
For QR codes:
zbarimg qrcode.png
-
For esoteric languages:
- Brainfuck:
++++[>++++++++<-]>.
- Ook!:
Ook. Ook! Ook.
- Whitespace: Only spaces, tabs, newlines
- JSFuck:
[]!+() characters only
Use online interpreters for these.
Encoding Chain Workflow
The run-decode.sh script handles multi-step chains automatically:
- Input → detect encoding type
- Try all standard decodings (base64, hex, ROT13, URL, binary)
- For each successful decoding → try decoding the result again
- Search all intermediate and final results for flag patterns
- Output unified JSON with all results
Common Encoding Patterns
| Pattern | Encoding |
|---|
= or == at end | Base64 |
| All caps + 2-7 | Base32 |
| Only 0-9 a-f | Hexadecimal |
| Only 0 and 1 | Binary |
%20, %3D | URL encoding |
A, A | HTML entities |
Esoteric Language Detection
| Looks Like | Language |
|---|
+ - < > [ ] . , | Brainfuck |
Ook. Ook! Ook? | Ook! |
| Only whitespace | Whitespace |
[]+!() | JSFuck |
moo, MOO | COW |
Team Roles
When using /ctf-kit:team-solve with a misc challenge, the lead spawns 3 specialists:
| Role | Teammate Name | Focus | Tools | First Action |
|---|
| Encoding Specialist | decoder | CyberChef recipes, multi-layer encoding chains, base conversions, custom encodings, cipher identification | CyberChef, scripts/run-decode.sh, python3 | Run run-decode.sh, try recursive decoding, identify encoding layers |
| Esoteric & Code | esoteric-analyst | Brainfuck, Whitespace, JSFuck, Ook!, Malbolge, polyglots, custom language identification | Online interpreters, python3 | Identify language from character set, find/build interpreter, execute |
| Puzzle & Logic | puzzle-solver | Pattern recognition, math puzzles, QR/barcodes, game theory, constraint satisfaction, riddles | zbarimg, python3, z3 | Scan for QR/barcodes, analyze patterns, identify puzzle type |
When to broadcast
- Decoder: "Base64 decoded to hex, hex decoded to... another encoding" — puzzle solver helps identify the pattern
- Esoteric: "Identified as Whitespace language, output is: PARTIAL_STRING" — decoder checks if output needs further decoding
- Puzzle: "QR code contains URL / encoded string" — decoder processes the content
- Any: "Found the flag" — immediate broadcast, all stop
Example Usage
/ctf-kit:misc encoded.txt
/ctf-kit:misc qrcode.png
/ctf-kit:misc challenge.bf