CTF Support
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage
Edit page

Text Steganography

Introduction

Text steganography hides information within seemingly ordinary pieces of text.

Instead of modifying pixels or sound waves, data is concealed using spaces, tabs, or invisible Unicode characters.

Common encoding tricks:

  • Whitespace or tab padding after lines (Stegsnow classic method).
  • Zero-width characters in Unicode (e.g., U+200B or U+200C).
  • Encoding binary patterns in typesetting, punctuation, or character order.

Quick Reference

  • Extract hidden text: stegsnow input.txt
  • Extract compressed hidden data: stegsnow -C input.txt
  • Check for zero-width Unicode characters: cat -A input.txt
  • Inspect hex dump for anomalies: xxd input.txt
  • Show hidden spaces/tabs in VS Code: View -> Render Whitespace

Tools

Tool Purpose
stegsnow CLI tool that extracts (and encodes) hidden messages in text using spacing and tabs.
Unicode Steganography with Zero-Width Characters Browser-based tool that hides or reveals data encoded with zero-width joiners (ZWSP, ZWNJ).
Stegcloak Modern stego tool using zero-width Unicode to conceal text inside other messages (supports encryption).
cat -A, xxd Terminal utilities to detect control characters, spacing, or non-printable Unicode anomalies.

Stegsnow

stegsnow hides or extracts data using trailing whitespace at the end of lines or within text blocks.

Whitespace is invisible in most editors, making it ideal for subtle steganography.

Usage:

# Extract hidden content
stegsnow input.txt

# Extract compressed hidden content
stegsnow -C input.txt
Example: Stegsnow encoded file
Example: Stegsnow encoded file

Detecting Zero-Width Characters

Zero-width Unicode characters include:

  • U+200B (Zero Width Space)
  • U+200C (Zero Width Non-Joiner)
  • U+200D (Zero Width Joiner)

These cannot be seen directly but can be revealed using:

cat -A input.txt
xxd input.txt