$ cat writeup.md…
$ cat writeup.md…
pingCTF
Task: License keygen for SmartAttend ELF with DWARF debug info, validates keys via 10x10 linear system. Solution: Reverse key format (11-char metadata + 10 IEEE-754 floats as hex), solve linear system from HWID ASCII values, bruteforce metadata for numerical stability.
$ cat /etc/rate-limit
Rate limit reached (20 reads/hour per IP). Showing preview only — full content returns at the next hour roll-over.
License validation challenge with SmartAttend ELF binary.
Given an ELF binary SmartAttend with DWARF debug info and a remote checker that sends 100 random HWIDs. For each HWID, generate a valid license key. Pass all 100 rounds to get the flag.
The binary is a 64-bit ELF with full DWARF debug symbols, making reverse engineering straightforward with radare2:
SmartAttend: ELF 64-bit LSB executable, x86-64, with debug_info, not stripped
decode_signature_from_key)License key structure (91 characters total):
0-9A-Z)The 99-character HWID (charset 0-9A-Z) is split into 9 rows of 11 characters each.
compute_system_loss / probe_signature_candidate)The validation constructs a 10x10 linear system:
'A' = 65, '0' = 48)The system validates: A @ signature = b where:
A is 10x10 matrix from ASCII values of first 10 chars per rowb is 10-element vector from ASCII values of 11th char per rowsignature is the 10 float values decoded from the key...
$ grep --similar