Amazing
Reversing a Python marshal bytecode maze generator seeded by an LCG to find the escape path.
No writeups match your filter.
Reversing a Python marshal bytecode maze generator seeded by an LCG to find the escape path.
A TCP service hands you the AES-CBC ciphertext of your own input and asks you to return a ciphertext that decrypts to contain admin credentials — solved with a single-byte XOR flip.
A homemade RSA-CRT signer leaks a correct and a faulted signature of the same message; gcd(s − spz, n) factors n (the Bellcore attack), while the trivial shortcut just recovers the message via s^e mod n — and the XOR ‘protection’ undoes itself.
A 16-frame APNG hides one flag character per frame in the top-left pixel of each frame’s decompressed scanline data; every standard stego avenue is a dead end, so decompressing all 16 fdAT/IDAT streams and reading byte 4 of each yields the flag.
A ‘PNG’ that file() calls a broken JPEG is a PNG with a forged signature and vandalized chunk names; repairing the header reveals an rMQR (rectangular Micro QR) barcode that ZXing decodes to the flag.
The title ‘All’s Fair’ points at the Playfair cipher; the grid image is the standard 5×5 key square with even columns blanked, and the ciphertext decrypts to ANYTHINGFORTHEFLAG.
An RSA modulus that looks 2054-bit-strong is actually 67 × q — a tiny prime factor makes it trivially factorable (FactorDB / trial division), reconstructing the private key and decrypting the flag.
A 192-bit Huffman stream and a frequency table; the textbook min-heap decode looks perfect (wrapped in dalctf{}, zero leftover bits) yet is wrong — matching the encoder’s tie-break policy recovers the real flag.
A homemade LCG-as-cipher multiplies each flag byte by a deterministic state independent of the plaintext — the known DalCTF{ prefix recovers one state, and replaying the generator divides out the rest. The lost seed is a red herring.
A C program squares each flag byte as a float, then a ‘forgotten’ Quake-style (long)&y type-pun prints the raw IEEE-754 bits as integers; reversing bits→float→sqrt→char recovers the flag.