All tools
89 tools across 12 categories. Each page explains the technique - how to recognise it, why the attack works, and where it fails - and opens the workspace tab that performs it. Everything runs locally in your browser.
Not sure what you are holding? The decision guide starts from the symptom. The curriculum puts them in learning order.
Encoding
Base64 decoder and encoder
Decode and encode Base64 and Base64-URL in the browser, with padding repair and automatic detection of nested encodings. Nothing is uploaded.
OpenHex to text converter
Convert hexadecimal to text and back, tolerating whitespace, commas, and `0x` prefixes. Runs entirely in your browser.
OpenBase32 decoder and encoder
Decode Base32 (RFC 4648) to text or bytes, with padding repair. Distinguishes Base32 from Base64 and hex automatically.
OpenBinary to text converter
Convert binary (and decimal codepoints) to text and back. Handles 7-bit and 8-bit groupings, arbitrary separators, and reversed bit order.
OpenURL decoder and encoder
Percent-decode and encode URL components, including double-encoded payloads and `+`-as-space form encoding.
OpenHTML entity decoder
Decode named, decimal, and hexadecimal HTML entities back to text - including the mixed-form entities used to slip past XSS filters.
OpenMorse code translator
Translate Morse code to text and back, tolerating any dot/dash characters and any word separator. Also decodes Morse recovered from audio.
OpenBrainfuck and esolang decoder
Run Brainfuck, Ook!, Befunge, Whitespace, Deadfish, and friends. Esolangs are a recognition problem more than an execution problem.
Open
Classical crypto
Caesar cipher decoder with automatic shift detection
Break a Caesar shift without guessing. ctfpal scores all 26 rotations by chi-squared letter frequency and puts the English one first.
OpenROT13 decoder
Apply ROT13 (and ROT47) instantly. ROT13 is its own inverse, so the same operation encodes and decodes.
OpenVigenere cipher solver with automatic key recovery
Decrypt Vigenere with a known key, or recover the key from ciphertext alone using index-of-coincidence period detection and per-column chi-squared.
OpenXOR cipher decoder and key recovery
XOR text or hex against a key, brute-force single-byte XOR by English scoring, and recover repeating-key XOR by Hamming-distance keysize detection.
OpenAtbash cipher decoder
Decode Atbash, the keyless substitution that maps A to Z, B to Y, and so on. Its own inverse.
OpenAffine cipher solver
Brute-force every valid affine key pair and rank the 312 candidate decryptions by English-likeness.
OpenBacon cipher decoder
Decode Baconian ciphers, including the versions hidden in letter case, font changes, or two repeated symbols.
OpenRail fence cipher solver
Brute-force rail fence transposition across 2-8 rails and every starting offset, ranked by English-likeness.
OpenCipher identifier and automatic decoder
Paste anything and find out what it is. ctfpal runs every decoder and rotation, including multi-pass cascades, and ranks results by English-likeness and flag patterns.
OpenMonoalphabetic substitution cipher solver
Break an arbitrary substitution cipher automatically by hill-climbing on quadgram statistics - no key, no guessing.
OpenPlayfair cipher decoder
Decrypt Playfair with a known keyword, using the 5x5 digraph square. Recognisable by its even length and total absence of doubled letters.
OpenADFGVX cipher decoder
Decrypt ADFGX and ADFGVX - a Polybius substitution followed by a columnar transposition, and unmistakable from its six-letter alphabet.
OpenHill cipher solver
Encrypt and decrypt with matrix keys over mod 26, including matrix inversion and known-plaintext key recovery.
Open
Modern crypto
RSA decryption and attack runner
Paste n, e, and c and let ctfpal choose the attack: trial division, Fermat, Pollard’s rho, Wiener, common modulus, or Hastad broadcast. Arbitrary-precision, in-browser.
OpenFermat factorization for close RSA primes
Factor an RSA modulus whose primes were generated too close together. Fermat’s method finds them in a handful of steps where trial division never would.
OpenWiener’s attack on small RSA private exponents
Recover a small private exponent d from n and e using continued fractions. Works whenever d is below roughly the fourth root of n.
OpenHastad broadcast attack on RSA
Recover a message sent to several recipients under a small public exponent, using the Chinese remainder theorem and an exact integer root.
OpenRSA common modulus attack
Recover a plaintext encrypted twice under the same modulus with two coprime exponents, using the extended Euclidean algorithm. No factoring needed.
OpenLinear congruential generator predictor
Recover the modulus, multiplier, and increment of an LCG from a handful of consecutive outputs, then predict every future value.
OpenMT19937 state recovery and predictor
Recover the full Mersenne Twister state from 624 consecutive outputs by inverting the tempering function - then predict Python’s random module exactly.
OpenHash length extension attack
Append data to a message and forge a valid MD5, SHA-1, or SHA-256 signature without knowing the secret - the Merkle-Damgard flaw behind `hash(secret || message)`.
OpenXOR crib dragging for many-time pads
Recover both plaintexts when a one-time pad key is reused, by dragging a guessed word along the XOR of two ciphertexts.
OpenECDSA nonce reuse private key recovery
Recover an ECDSA private key from two signatures that reused the same nonce - the flaw that broke the PlayStation 3 and countless wallets.
OpenCBC padding oracle attack
Decrypt CBC ciphertext one byte at a time using only a valid/invalid padding signal - Vaudenay’s attack, explained and driven.
OpenDiscrete logarithm solver
Solve discrete logs with baby-step giant-step, Pollard’s rho, and Pohlig-Hellman - the last of which breaks any group with smooth order.
OpenModular arithmetic and number theory toolkit
Modular inverse, Chinese remainder theorem, Tonelli-Shanks square roots, Jacobi symbols, and integer nth roots - arbitrary precision, in the browser.
OpenBiased nonce lattice attack (hidden number problem)
Recover an ECDSA key from many signatures whose nonces leak only a few bits, by reducing the hidden number problem to a lattice with LLL.
OpenAES-GCM nonce reuse (forbidden attack)
Recover the GHASH authentication key from two messages encrypted under the same key and nonce, then forge arbitrary authenticated ciphertexts.
OpenAES decryption tool (CBC, GCM, CTR, ECB)
Decrypt AES in every common mode and key size, with hex, Base64, or UTF-8 key material and automatic PKCS#7 padding removal. Runs on Web Crypto in your browser.
OpenASN.1 and X.509 certificate parser
Decode DER and PEM structures, walk the ASN.1 tree, and read certificate fields, extensions, and embedded public keys.
Open
Hashes
Hash identifier with hashcat mode lookup
Identify a hash from its shape and prefix - MD5, SHA family, bcrypt, NTLM, and the salted formats - and get the hashcat mode number to crack it.
OpenMD5, SHA-1 and SHA-256 hash generator
Compute MD5, SHA-1, SHA-256, SHA-384, and SHA-512 of any text in the browser, using Web Crypto. Nothing is sent anywhere.
OpenIn-browser hash cracker with rule transforms
Crack MD5, SHA-1, SHA-256, SHA-384, and SHA-512 against a wordlist in your browser, with leetspeak, case, reversal, and digit-append rules.
OpenSHA-3, BLAKE2, Keccak and RIPEMD calculator
Compute the hash functions outside the standard set - SHA-3, Keccak, BLAKE2, and RIPEMD-160 - when SHA-2 does not match.
Open
Tokens
JWT decoder and signature verifier
Decode a JSON Web Token’s header and payload and verify HS256/HS384/HS512 signatures against a known secret - all locally.
OpenJWT alg=none bypass generator
Forge an unsigned JWT by setting the algorithm to none, and understand why some libraries still accept it.
OpenJWT secret brute force
Recover a weak HMAC signing secret from a JWT by testing a wordlist against the token’s own signature, in the browser.
Open
Forensics
File type identifier by magic bytes
Drop a file and identify what it really is from its signature, regardless of extension. Also finds file headers embedded inside other files.
OpenStrings extractor for binaries and blobs
Pull printable ASCII and UTF-16 strings out of any file, filtered by length, with flag-pattern highlighting.
OpenHex viewer and hexdump
Inspect any file byte by byte with a side-by-side hex and ASCII view, offsets, and structure highlighting.
OpenEXIF metadata viewer
Read EXIF, GPS coordinates, camera details, timestamps, and embedded comments from images - the metadata that answers OSINT challenges.
OpenPNG chunk analyzer
Walk a PNG chunk by chunk, validate CRCs, read tEXt and zTXt metadata, and find data hidden after IEND or in non-standard chunks.
OpenJPEG marker and segment analyzer
Parse JPEG markers, read APP segments and comments, and extract data appended after the end-of-image marker.
OpenPDF object and stream analyzer
Walk PDF objects, decompress streams, extract embedded files and JavaScript, and find text hidden under redaction boxes.
OpenAudio spectrogram and SSTV decoder
View a WAV as a spectrogram to find text drawn in frequency space, decode Morse and SSTV, and extract LSB data from audio samples.
OpenOffice macro and OLE extractor
Extract VBA macros from DOCM, XLSM, and legacy OLE documents, and deobfuscate the string-concatenation tricks they hide behind.
OpenQR code decoder
Decode QR codes from any image, including inverted, low-contrast, and partially damaged codes. Nothing is uploaded.
OpenDTMF tone decoder
Decode telephone keypad tones from audio - the dual-frequency pairs that encode digits 0-9, *, #, and A-D.
OpenMagic byte and file signature table
Look up any file format by its magic bytes, or any byte sequence by format - including the trailers that mark where a file ends.
OpenZIP archive inspector
Read a ZIP’s central directory and local headers, spot mismatches used to hide files, and check encryption and compression per entry.
Open
Steganography
Automatic steganography solver
Throw every applicable steganography technique at a file at once - image, audio, archive, text, and document - recursively unpack what falls out, and surface flag matches.
OpenLSB steganography extractor
Extract least-significant-bit data from images across every channel, bit order, and traversal direction, with bit-plane visualisation.
OpenZero-width character and text steganography decoder
Reveal messages hidden in zero-width Unicode characters, trailing whitespace, and homoglyph substitution - text steganography that survives copy-paste.
Open
Network
Web
Reverse shell generator
Generate reverse shell one-liners for bash, nc, Python, Perl, Ruby, PHP, Node, and PowerShell, plus listeners and TTY stabilisation commands.
OpenFlask session cookie decoder
Decode and verify Flask’s itsdangerous session cookies, with automatic zlib detection and both key-derivation schemes.
OpenHTTP request replayer
Craft and replay HTTP requests with arbitrary methods, headers, and bodies, and read the raw response - a Repeater that runs in your browser.
OpenDirectory and path scanner
Probe a target for common paths and hidden files with adjustable concurrency, reporting status, type, and timing for each hit.
OpenWeb attack payload catalog
Curated payloads for SQL injection, XSS, SSTI, SSRF, GraphQL, and deserialization, organised by what you are trying to establish.
OpenHTTP security header analyzer
Analyse CSP, HSTS, X-Frame-Options, and CORS headers on a response - and find the gaps in a Content-Security-Policy that make XSS exploitable.
OpenExposed .git directory dumper
Reconstruct a repository from an exposed .git directory - recovering source, deleted files, and secrets from the commit history.
Open
Reversing
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.
OpenWebAssembly disassembler
Convert a .wasm module to readable WAT, list exports and imports, and follow the control flow.
OpenJava .class disassembler
Disassemble JVM bytecode, read the constant pool, and recover strings and logic from .class and .jar files.
OpenPython .pyc bytecode disassembler
Disassemble compiled Python, read code objects and constants, and recover logic from a .pyc without running it.
Open
Binary exploitation
Cyclic pattern generator and offset finder
Generate a de Bruijn sequence and find the exact overflow offset from a crashed register value - the pwntools cyclic workflow, in the browser.
OpenEndianness converter and byte swapper
Swap byte order for 16-, 32-, and 64-bit values, with a big-integer preview - the conversion every memory address needs before it goes in a payload.
OpenStruct pack and unpack (p32, p64, u32, u64)
Convert integers to little-endian byte strings and back at 8, 16, 32, and 64 bits - the pwntools p32/p64 helpers without the install.
OpenROP chain and payload builder
Assemble an exploit payload from padding, addresses, and raw bytes, with a live hexdump and offset ruler - the pwntools flat() workflow.
OpenBuffer overflow offset finder
Find the exact number of bytes before the saved return address using a de Bruijn pattern and the value from a single crash.
OpenFormat string exploit builder
Find your input’s position on the stack and build %n write primitives - turning an uncontrolled printf into an arbitrary read and write.
OpenShellcode assembler and library
Assemble x86 and x86-64 shellcode, or pick a ready execve(/bin/sh) payload, with null-byte-free variants and length reporting.
OpenROP gadget finder
Search a binary for return-oriented programming gadgets, filter by the registers they touch, and exclude ones containing bad bytes.
OpenLibc base address calculator
Turn a leaked libc pointer into the library’s base address, then resolve any other symbol - the arithmetic every ret2libc exploit runs on.
OpenPwntools exploit script generator
Generate a working pwntools template with the right context, process or remote connection, and the boilerplate every exploit repeats.
OpenGlibc heap exploitation helper
Model glibc chunk layout, bin behaviour, and tcache - the size classes and metadata that heap challenges turn on.
Open
Utilities
Regex tester with match offsets and capture groups
Test regular expressions live against sample text, with every match’s offset, capture groups, and named groups broken out.
OpenTimestamp converter (Unix, ISO, FILETIME, HFS+)
Convert between Unix seconds and milliseconds, ISO 8601, local time, and the non-standard epochs used by Windows, macOS, and Flask.
OpenASCII table with hex, decimal, octal and binary
Every codepoint from 0 to 127 with its decimal, hexadecimal, octal, and binary representation and control-character name.
OpenGPS coordinate converter (DMS, decimal, UTM)
Convert between degrees-minutes-seconds, decimal degrees, and other coordinate notations - for EXIF locations and OSINT challenges.
OpenBase58, UUID and colour utilities
Decode Base58 and Base58Check, inspect UUID versions and embedded timestamps, and convert colour notations.
Open