Brainfuck and esolang decoder
Run Brainfuck, Ook!, Befunge, Whitespace, Deadfish, and friends. Esolangs are a recognition problem more than an execution problem.
Open in ctfpalEsoteric languages show up in CTF as a recognition puzzle: the hard part is knowing that a page of +, -, >, <, [, ] is Brainfuck rather than an encoding, after which running it is mechanical.
The reason they appear at all is that they defeat pattern matching without defeating anyone who recognises them. A grader scanning for Base64 or hex sees nothing; a competitor who has met Brainfuck once solves it in seconds. So the practical skill is a lookup table in your head - a handful of visual signatures, each mapping to a language with a well-known interpreter.
Signatures
| Looks like | Language |
|---|---|
+-<>[]., only | Brainfuck |
Ook. Ook? Ook! | Ook! - Brainfuck with three tokens |
| Only spaces, tabs, newlines | Whitespace - invisible in most editors |
A 2D grid with >v<^ and @ | Befunge |
iids repeated | Deadfish |
Worked example
Brainfuck
Input
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.Result
HelloThe canonical loop-based Hello World. The `.` characters are the output instructions.
Load this example in the workspace