Python .pyc bytecode disassembler
Disassemble compiled Python, read code objects and constants, and recover logic from a .pyc without running it.
Open in ctfpalCompiled Python is barely compiled. A .pyc holds a code object with the constants, variable names, and a linear instruction listing - enough that reading the disassembly is usually faster than finding a decompiler that supports the exact version.
The constants tuple is the shortcut
co_consts holds every literal in the function, including nested code objects for inner functions. For a challenge that compares your input against a stored value, that value is sitting in the constants. For one that builds the flag by arithmetic, the operands are there and the operations are readable.
For a PyInstaller executable, extract the archive first: the .pyc files are bundled inside, and the entry point script is the one named after the original program.
Related tools
Java .class disassembler
Disassemble JVM bytecode, read the constant pool, and recover strings and logic from .class and .jar files.
WebAssembly disassembler
Convert a .wasm module to readable WAT, list exports and imports, and follow the control flow.
Brainfuck and esolang decoder
Run Brainfuck, Ook!, Befunge, Whitespace, Deadfish, and friends. Esolangs are a recognition problem more than an execution problem.
ELF, PE and Mach-O binary analyzer
Parse headers, sections, imports, and symbols from Linux, Windows, and macOS binaries, with C++ symbol demangling and gadget discovery.