#image-analysis
14 writeups · all writeups
Clouded Perception: Reading a Number Hidden in a JPEG's Compression
Bellingcat Maritime Mysteries. A sunset over a mountain lake, no EXIF, nothing visible in the sky. Error Level Analysis in Forensically shows six digits in the clouds, and a quality sweep explains why exactly one JPEG setting reveals them.
Operation Fleet Finder: Identifying a Carrier Nobody Can See
Bellingcat Maritime Mysteries. Grey carriers at a pier, no EXIF, and no hull number on the ship in question. A pier sign, the camera position and the 2024 fleet movements narrow it to one carrier: USS George H.W. Bush.
Raptor Reserve
A Hacktoria CTF that hands you one word and nothing else. The island was the easy part — the hard part was three empty frames in an email.
A Message Has Three Dates
I built a six-stage stego challenge where the key sat in Discord rather than in the file. Nobody solved it. Here is the whole chain, and the reason it broke at the first gate.
One Photograph — Athena Trace 2026 Writeup
A caption that names the landmark instead of the venue, a statue that vanished into an overexposed sky, and a flag that wanted the newspapers' spelling rather than the historically correct one.
A Taste of Influence, Part 1 — The Flag in the Avatar
A ten-second solve of the OSINT challenge A Taste of Influence Part 1: the flag was in the Gronda profile picture, and the stylised logo pins the year.
A Taste of Influence, Part 4 — Finding the Strava Account
The final part of the A Taste of Influence OSINT challenge: finding a subject's Strava account through public athlete search, and disambiguating on the profile photo.
The Bitplane Combination Your Scanner Can't Express
Every mainstream LSB scanner applies one bit index across all three channels. Payloads that don't follow that rule are invisible by construction — not by accident.
Not here any more — A Payload No Scanner Can See
zsteg, Aletheia and five statistical detectors all called this file clean. The ZIP was sitting at offset 0 the whole time — hidden by splitting one bitstream across three different bitplanes.
READONLY — The Man Who Escaped Reality
A hand-drawn QR code carries two payloads: one is the vault, the other is the keys. The chain opens as a supermax jailbreak and closes somewhere much stranger.
Nothing To See Here — PDF → Mastodon → SSTV → QR
A passive-OSINT challenge that chains white-on-white PDF text, an emoji substitution cipher, a Morse-tagged Robot 36 SSTV transmission and a QR code into a physical meeting location.
packet.bspak — Three Channels, Two Decoys, One Stereogram
Breaking a layered OSINT packet: binary-ASCII JSON, a QR code that isn't a QR code, and a Vocaroo spectrogram that hands you a Google Maps pin.
From a Blurry Container Photo to an IMO Number
Maritime OSINT: reading a container number off a low-resolution harbour photo, then tracing the shipping chain to identify the vessel that carried it.
The Challenge Was Called DEPIX. Depix Was the Wrong Tool.
A pixelated boarding pass, a perfectly readable PDF417 barcode, and neither of them mattered. The solve took sixty seconds — and the only real trap in the challenge had nothing to do with the censoring.