zwesty
Write-ups / Day 28 / Warmups
Day 28 · Wed, Oct 28 · Warmups

Back in Sixteen

Prey slaughtered

Layered blob decoding with the existing Warmups chain; no new layer

STTMClaude Homebase Both

Flags are shortened to their first 8 and last 4 characters because they're unique per team.

Challenge ID
warmups-day-28 (+ /time_trial, /mastery)
Solved
2026-10-28: all three modes CORRECT on the first submit, by 09:00:35.9 ET, about 17.5 s after the solver's Single Solve start (about 09:00:18.4, worked back from its timings) and 35.9 s after the 9 AM release. Both timed modes were ranked. The first of our lanes done today
Player
Zwesty (solo), with Claude Code (Opus 5.5): our automated morning solver (a scheduled script on our Kali VM) solved it, with no hands-on Claude work needed

The challenge

The prompt text wasn't kept, and the challenge files weren't re-read for this write-up. The question is the standing Warmups one, shown here in Day 27's form (today's exact wording isn't recorded):

answer_id Question Format
message Decode the assigned blob and submit the answer slug its final decoded line gives three lowercase words and a two-digit number, hyphenated; the slug only

The Mastery asked the same question once per blob (setN.message).

Reading the prompt: what it said we'd need

Clue What it pointed to What I did about it
"Back in Sixteen" (title) Either base 16 (hex), or a callback to a Day 16 layer Nothing needed doing: the solver's chain already read today's blob. Its output doesn't say which layer it used, so the title's meaning isn't confirmed here
A 220-byte blob Short for a Warmups Single, so few layers The chain decoded it in 2 ms

What was in the files

  • Single Solve: 01-blob.txt, 220 bytes, decoding to the slug speedy-button-nugget-52.
  • Time Trial: 01-blob.txt, 218 bytes, slug zesty-anchor-ripple-29: the same template with a different value.
  • Mastery: the solver's output names the slugs for sets 135–138 (peppy-garden-bison-89, dandy-castle-nugget-16, deft-cactus-dune-84, sunny-canyon-hazel-56). The set count and blob sizes weren't recorded.

The solver already knew today's layer: no "no instruction line found" stop, unlike Day 27's Ook!.

Single Solve

The solver solved it with no stop. It decoded the blob through the Warmups chain from Day 27 (unchanged today) and sent the slug.

deadline    none (Single Solve)
answers     1   speedy-button-nugget-52
start        355 ms
artifact     294 ms   (220 bytes)
solve          2 ms
submit      1134 ms
TOTAL       1784 ms   (submit +1,564 ms after started_at)
result      CORRECT   flag fd06ff9d…a4cf   (09:00:20)

Time Trial

CORRECT on the first attempt, ranked (fresh variant).

answers     1   zesty-anchor-ripple-29
start        514 ms
artifact     379 ms   (218 bytes)
solve          2 ms
submit       829 ms
TOTAL       1724 ms   (submit +1,322 ms after started_at)
result      CORRECT   flag 110663b6…152c   (09:00:27)

Mastery

CORRECT on the first attempt, ranked.

answers     one per set (output names sets 135–138)
start       1177 ms
artifact     663 ms
solve        919 ms
submit      1041 ms
TOTAL       3800 ms   (submit +2,737 ms after started_at)
result      CORRECT   flag 9b8745be…5da5   (09:00:35.9)

Time to solve

All three modes were solved by 09:00:35.9 ET, 35.9 s after release and about 17.5 s after the Single Solve started (start times are worked back from each run's timings, so they're approximate). Each mode went through on the first submit, and both timed modes were ranked.

Takeaways

  • A layer built once keeps paying. Today's blob needed nothing new; the chain built up over 27 days read it in 2 ms.
  • The solver's speed is in the network, not the solve. Solve was 2 ms in both the Single and the Time Trial; start and submit were most of each total.
  • Record the layer, not just the result. The solver's output doesn't say which reading decoded the blob, so the title's "Sixteen" can't be tied to hex or to Day 16 from the records. Logging the winning layer per run would answer that for free.