STEGSNOW(1)

STEGSNOW(1) πŸ’–

okay bestie, gather round, because this one is genuinely iconic. it's stegsnow, from the General Commands Manual, and it is a whitespace steganography program. yes, steganography. yes, hiding secret little messages in places nobody looks. we love a sneaky queen. πŸ’…


✨ NAME ✨

stegsnow β€” whitespace steganography program πŸ¦‹


🌸 SYNOPSIS 🌸

stegsnow [ -CQS ] [ -h | --help ] [ -V | --version ] [ -p passwd ] [ -l
line-len ] [ -f file | -m message ] [ infile [ outfile ]]

that's the whole vibe right there, no cap.


πŸ‘‘ DESCRIPTION πŸ‘‘

so. stegsnow is a program for concealing messages in text files by appending tabs and spaces on the end of lines, and also for extracting messages from files that already have hidden messages inside them. and the reason this works at all? because tabs and spaces are invisible to most text viewers. that's the steganographic nature of this encoding scheme, periodt. nobody sees them, they're just there, living their little secret lives. πŸ™ˆ

the data gets concealed in the text file by appending sequences of up to 7 spaces, interspersed with tabs. this usually allows 3 bits to be stored every 8 columns. and fun fact for the girlies who love a design decision: an alternative encoding scheme using alternating spaces and tabs to represent zeroes and ones was rejected, because even though it used fewer bytes, it required more columns per bit (4.5 vs 2.67). the math said no. πŸ’€

the start of the data is indicated by an appended tab character, which means you can insert mail and news headers without corrupting the data. so useful, honestly. 🫢

stegsnow also provides rudimentary compression, using Huffman tables optimised for English text. but β€” and listen, this is important β€” if the data is not text, or if there's a lot of data, the use of the built-in compression is not recommended, since an external compression program such as compress or gzip will do a much better job. don't be stubborn about it. ✨

Encryption is also provided, using the ICE encryption algorithm in 1-bit cipher-feedback (CFB) mode. because of ICE's arbitrary key size, passwords of any length up to 1170 characters are supported (since only 7 bits of each character are used, keys up to 1024-bytes are supported). she's flexible, she's powerful, she's that girl. πŸ‘‘

and here's how the flow works. if a message string or message file is specified on the command-line, stegsnow will attempt to conceal the message in the file infile if specified, or standard input otherwise. the resulting file will be written to outfile if specified, or standard output if not. easy.

but if no message string is provided, stegsnow attempts to extract a message from the input file instead. the result is written to the output file or standard output. so it's basically a two-way icon. 🌈


πŸ’… OPTIONS πŸ’…

  • -C β€” compress the data if concealing, or uncompress it if extracting. she does both. versatile. ⭐
  • -f message-file β€” the contents of this file will be concealed in the input text file.
  • -l line-len β€” when appending whitespace, stegsnow will always produce lines shorter than this value. by default it is set to 80.
  • -m message-string β€” the contents of this string will be concealed in the input text file. note that, unless a newline is somehow included in the string, a newline will not be printed when the message is extracted. so don't come crying about it, bestie. 😭
  • -p password β€” if this is set, the data will be encrypted with this password during concealment, or decrypted during extraction.
  • -Q β€” quiet mode. if not set, the program reports statistics such as compression percentages and amount of available storage space used. sometimes you just don't wanna hear the stats. valid. πŸ™ˆ
  • -S β€” report on the approximate amount of space available for hidden message in the text file. line length is taken into account, but other options are ignored.
  • -V, --version β€” display usage information and exit.
  • -h, --help β€” display usage information and exit.
yes, -V/--version and -h/--help both say "display usage information and exit". that's what the page says, so that's what i'm telling you. no editing the source material, that's the rule. πŸ’–

πŸŽ€ EXAMPLES πŸŽ€

the following command will conceal the message "I am lying" in the file infile, with compression, and encrypted with the password "hello world". the resulting text will be stored in outfile. chef's kiss. πŸ”₯

stegsnow -C -m "I am lying" -p "hello world" infile outfile

to extract the message, the command would be:

stegsnow -C -p "hello world" outfile

note that the resulting message will not be terminated by a newline. (told you. no newline. ever. okay not ever, but here. 😌)

to prevent line wrap if text with concealed whitespace is likely to be indented by mail or news readers, a line length of 72 or less can be used.

stegsnow -C -l 72 -m "I am lying" infile outfile

the approximate storage capacity of a file can be determined with the -S option.

stegsnow -S -l 72 infile

πŸ¦‹ AUTHOR πŸ¦‹

this application was written by Matthew Kwan, who can be reached at mkwan@darkside.com.au. king behaviour, honestly. πŸ‘‘


🌟 SEE ALSO 🌟

  • ice_key_create(3)

okay that's the whole page, bestie, you're officially fluent in whitespace steganography now 🧚 slay ✨

this was stegsnow, Version 1.1, dated 28 Dec 1996. yes she's vintage, yes she still eats. πŸ’œ πŸ“ πŸ’–