Java .class disassembler
Disassemble JVM bytecode, read the constant pool, and recover strings and logic from .class and .jar files.
Open in ctfpalJVM bytecode retains far more information than native code: method names, field names, types, and every string literal survive compilation in the constant pool. That makes Java challenges much closer to reading source than to reversing a binary.
Read the constant pool first
Every string in the class is listed in one place. For a flag-checking challenge the expected value is often literally there. When it is not, the pool still names every method the class calls, which sketches the algorithm before you read a single instruction.
Related tools
Python .pyc bytecode disassembler
Disassemble compiled Python, read code objects and constants, and recover logic from a .pyc without running it.
WebAssembly disassembler
Convert a .wasm module to readable WAT, list exports and imports, and follow the control flow.
ZIP archive inspector
Read a ZIP’s central directory and local headers, spot mismatches used to hide files, and check encryption and compression per entry.
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.