$ cat writeup.md…
$ cat writeup.md…
broncoctf2026
Task: stripped ARM64 Mach-O 'Dog Simulator' game requiring a correct 6-day action routine. Solution: reverse the state machine, recover the fixed action order plus two Speak commands — a 12-letter FNV-1a preimage of 0x9f58d866 (via Z3) and the owner-name 'gremlin' from day-6 dialogue.
$ cat /etc/rate-limit
Rate limit reached (20 reads/hour per IP). Showing preview only — full content returns at the next hour roll-over.
If you can survive 6 dog-days of walkies, tricks, and zoomies, you might uncover a secret (if you can stick to the right routine in the right order)!
A "Dog Simulator" game binary (stripped ARM64 Mach-O, PIE, dynamically linked to libSystem). Over 6 days you choose menu actions. State (Score, Bond, Energy, Mood) is tracked, and at the finale the owner either prints a garbled failure message or reveals the flag if the correct routine was followed in the correct order. Goal: recover the exact six-day routine.
The whole program logic lives in a single stripped function (0x100000500).
Actions deterministically update Score, Bond, Energy, and Mood
(calm/hyped/overstimulated/sleepy), and advance a four-stage combo counter. The
finale gates the flag on all of the following:
Score == 55, Bond > 24, Energy > 20, Mood != overstimulatedSpeak normalizes input to lowercase alphabetic and hashes it with FNV-1a
(offset basis 0x811c9dc5, prime 0x01000193):
...
$ grep --similar