OutGuess

OutGuess is a steganography tool by Niels Provos that embeds data in the redundant bits of JPEG DCT coefficients. After embedding, it corrects the remaining coefficients so the image's frequency statistics stay unchanged — defeating the classic chi-square detection attack.

What Aperi'Solve runs

OutGuess only runs when you check deep analysis on upload. Extraction (-r) uses the password you provided, or no key at all:

$ outguess -k "password" -r image.jpg outguess.data
$ outguess -r image.jpg outguess.data      # empty password

Embedding and extraction without -k use the same built-in default key, so an empty password still recovers payloads that were hidden without one. If outguess.data comes out non-empty, it is zipped and offered as a download on the result page.

Reading the output

OutGuess prints its progress on stderr even when it succeeds:

  • Reading image.jpg.... followed by extraction statistics and a download link — the payload was recovered; grab the archive.
  • Errors like Extracted datalen is too long — the key is wrong, or nothing was embedded with OutGuess. The tool still writes an output file in this case, but an empty one; Aperi'Solve discards it and reports an error instead of a download.

Installing locally

$ apt install outguess

Limitations

  • JPEG (and PNM) only — for PNG carriers use zsteg.
  • There is no way to prove absence: a wrong key and an empty carrier fail the same way. If you suspect OutGuess, keep hunting for the key.
  • Old payloads: files embedded with the legacy OutGuess 0.13 cannot be extracted by modern 0.2+ builds (the formats are incompatible). Some old CTF challenges require compiling the historical version.

Common CTF patterns

  • Empty password — Aperi'Solve tries exactly this when you leave the password field blank; always attempt it first.
  • The key is printed elsewhere in the challenge: image metadata (check exiftool), the filename, the challenge text or a companion file.
  • A JPEG that looks clean in steghide and jsteg but was name-dropped as "outguessed" or ships with an OutGuess-era (early 2000s) theme.
  • The extracted payload is another carrier: re-upload outguess.data.