$ cat writeup.md…
$ cat writeup.md…
broncoctf2026
Task: Three Lost Judgment PNG screenshots hint at RGB channels and varying heat bars, with no useful metadata or appended data. Solution: Inspect the matching RGB bit planes, read three text masks, and concatenate them without spaces.
Lost Judgment has been one of my favorite visuals in the Yakuza Series, especially the styles and their colors. As much as Fully Baked loves Boxer, I much prefer the RGB trifecta. But what's with the heat bar amount on each style? Are they trying to tell me something? format: bronco{}, if you find multiple parts, no spaces.
The provided files are Tiger.png, Snake.png, and Crane.png. The goal is to recover the data hidden in the screenshots and place the combined result inside bronco{...}.
The description gives three complementary clues:
The principal false assumption was to treat the visible gauge amounts as numbers and then convert those numbers into RGB values, color names, or characters. That produced many plausible-looking but incorrect results. The simplifying pivot was to inspect each channel's eight bit planes directly.
No metadata, unusual PNG chunks, alpha-channel payload, or trailing file data is required. The deliberate payload appears as clean text masks in these planes:
| File | Matching channel | Bit index (LSB = 0) | Text |
|---|---|---|---|
Tiger.png | Red | 0 | F33L |
Snake.png | Green | 2 | TH3 |
Crane.png | Blue | 4 | H34T |
The following Pillow script extracts only the three relevant planes. For every pixel, it tests the selected channel bit and maps zero/one to black/white, producing an easily readable monochrome mask.
#!/usr/bin/env python3 from pathlib import Path from PIL import Image TARGETS = [ ("Tiger.png", "R", 0), ("Snake.png", "G", 2), ("Crane.png", "B", 4), ] root = Path(__file__).resolve().parent for filename, channel, bit in TARGETS: image = Image.open(root / filename).convert("RGB") values = image.getchannel(channel) mask = values.point(lambda value, b=bit: 255 if value & (1 << b) else 0) output = root / f"{Path(filename).stem}_{channel}_bit{bit}.png" mask.save(output) print(output)
Run the script in the directory containing the three challenge images and inspect the generated PNGs. They show, in RGB order:
F33L TH3 H34T
Concatenating the fragments without spaces gives F33LTH3H34T, a leetspeak rendering of “FEEL THE HEAT.” The final submission is therefore:
$ cat /etc/motd
Liked this one?
Pro unlocks every writeup, every flag, and API access. $9/mo.
cat pricing.md$ grep --similar