Challenge list
Programming - Packet Log Analysis
capture.txt is a packet log created at every start (in /challenge). Each line is one flow of the form flow=<name>…
Programming - Multithreaded Result Reassembly
Analyze the parallel-job result log worker-results.jsonl, which is generated randomly at every start. Each slot was…
Programming - Memory Dump Analysis
Analyze the synthetic memory image memory.img, which is generated randomly at every start. In the heap table at the…
Programming - Known-Plaintext Attack
Analyze the evidence files ciphertext.b64 and known.txt, which are generated randomly at every start. ciphertext.b64…
Programming - Custom Protocol Parsing
protocol.bin is a binary capture created at every start (in /challenge): several length-prefixed frames that begin…
Programming - Image Steganography
image.pgm is a text-format (P2) PGM image created at every start (in /challenge). Collect the least significant bit…
Cryptanalysis - RSA Common Modulus Attack
Two systems reused the same RSA modulus n and only changed the public exponent. The ciphertexts c1 and c2 of the same…
Cryptanalysis - Diffie-Hellman with a Small Prime
An old IoT device performed Diffie-Hellman key exchange with a prime p of only 36 bits. handshake.txt contains p, g, A…
Linux-Kernel Module. Gaining Root via a Vulnerable Driver
This challenge analyzes a vulnerable character-device driver as a safe user-space simulation. No real kernel module is…
Linux-Buffer Overflow. Exploiting a gets() Vulnerability
A vulnerable SUID C binary with protections disabled is provided. Exploit its buffer overflow to redirect control flow…
Advanced Python - Custom VM Bytecode Execution
program.kvm is bytecode for a custom four-register VM. Implement an interpreter in Python from the instruction…
Binary Repair - Firmware Header and CRC32
Repair firmware.bin by writing KINO at bytes 0-3 and the little-endian CRC32 of bytes 12+ at bytes 8-11. Submit the…
Programming - C2 Traffic Analysis
Analyze the synthetic log beacon.log, which is generated randomly at every start (no network connection is needed).…
Programming - Buffer Overflow Crash Analysis
Analyze the crash reports crash_01.txt to crash_06.txt, which are generated randomly at every start (they contain no…
Programming - Fuzzing Result Analysis
Analyze the fuzzing result log fuzz-results.log, which is generated randomly at every start (inputs are merely stored;…
Programming - Blockchain Event Reassembly
/challenge/blocks.json is a list of blocks from an offline development chain, regenerated with random data every time…
Programming - Rootkit View Diffing
proc_ps.txt (the userland ps output) and proc_kernel.txt (the result of walking the kernel task list directly) are…
Programming - Anomaly Detection
/challenge/requests.csv is a web API access log that is regenerated with random data every time the container starts…
Programming - Pentest Finding Analysis
findings.json is a scan result built from random data at every start (in /challenge). It has entry (edge-gw),…
Programming - Async Scan Result Analysis
/challenge/scan-events.jsonl is the event log of an asynchronous port scanner, regenerated with random data every time…
Cryptanalysis - DSA Nonce Reuse Key Recovery
/challenge/signatures.json, created with fresh keys at every start, holds the DSA public parameters (p of 1024 bits, q…
Cryptanalysis - Wiener's Attack on RSA
An embedded-device team made the RSA private exponent d very small to speed up decryption. The public exponent e in…
Cryptanalysis - Recovering an LCG's Hidden Parameters
A service generated both session tokens and an encryption keystream from a linear congruential generator x_{k+1} =…
Linux-eBPF Rootkit. Unmasking a Hidden Process
This challenge safely recreates eBPF-rootkit investigation as offline evidence analysis. Without loading eBPF, tell…