SNOWDROP(1)
π SNOWDROP π (that's section 1 of the General Commands Manual, bestie)
okay so. pull up a chair. we're talking about snowdrop β a steganographic text watermarking and watermark recovery system, and yes it's as cool as it sounds. it lives in your terminal as snowdrop and ships as three whole programs. three. icons only.
β¨ NAME β¨
sd-eng, sd-engf, sd-c β text watermarking and watermark recovery. that's the whole vibe. π¦
π SYNOPSIS π
sd-eng [-6] -i origfile newfile "Recipient" ["Comment"]
sd-eng [-6] -e origfile newfile
sd-eng [-6] -l
literally just those three shapes. memorize them, they're not hard, i believe in you π
πΈ DESCRIPTION πΈ
so snowdrop is a steganographic text watermarking and watermark recovery system. which is a fancy way of saying: it hides a secret little signature inside your text and then can dig it back out later. no cap.
it's made up of three programs:
sd-engβ watermarks normal English text. the everyday queen πsd-engfβ watermarks fine quality English text. it gives you higher quality output but encodes less information. tradeoffs, bestie, it's giving β¨aesthetic over dataβ¨sd-cβ watermarks C code. yes, your source files. yes, it's unhinged and i love it π
all three programs operate similarly β same parameters, same usage. the watermark gets encoded in using a whole bunch of techniques, like:
- whitespace reformatting
- inserting typos
- word substitutions
- punctuation changes
- and for C code specifically: logic reordering, variable name mangling, etc.
the watermark itself is an md5sum, and here's the part that ate: it's retrievable from as little as 5 or 10 lines of the watermarked document. five. lines. π even big changes to a medium sized document shouldn't obscure the watermark, because it's stored redundantly in multiple independent channels. it's everywhere. it's in the walls. π«Ά
the three usage modes are:
- adding a watermark
- checking for the presence of a watermark
- listing the contents of your database of watermarks
β οΈ heads up bestie, this one's important: to later check a watermark, you must retain a copy of the original, un-watermarked file. no original, no recovery. periodt.
π OPTIONS π
-iβ inject a watermark into a file. you gotta hand it the original file, the filename to output the watermarked version to, info about who you intend the watermarked file for, and an optional comment. it's a whole little handshake π€-eβ extract a watermark from a file. it needs the original file and the new file that you suspect bears the watermark. two files, one truth π-lβ lists the contents of the watermark database. and plot twist: each of the three programs will have a different list. three programs, three databases, three little worlds π-6β enable 64 bit watermarking. the default is a weak 32 bit watermark. so likeβ¦ upgrade if you care about yourself π
π§ ENVIRONMENT π§
SD_SYNONYMSβ you can point this variable at a customized synonyms file so snowdrop uses your words instead of its words. make it yours, personalize the vibe πΈ
π FILES π
~/.snowdrop/databaseβ the database of watermarked files. your little archive of secrets, tucked away in your home directory π
π₯ SEE ALSO π₯
/usr/share/doc/snowdrop/README.gzβ explains snowdrop in more depth, its limitations, and how to write additional watermarking modules for other types of files. if you wanna go deeper (and you should), this is the read. go read it. i'll wait π
π AUTHOR π
Michal Zalewski <lcamtuf@coredump.cx> β the icon who made all of this happen. we stan π«Ά
okay that's the whole page!! π this was SNOWDROP(1), straight out of the General Commands Manual (section 1, obviously β it's a command, bestie), and ngl there's no version number or date stamped on this one, so consider this your official β¨no-version-no-dateβ¨ sign-off. go watermark something. slay. π β¨π¦
π¦ where this page comes from
- debian bookworm: snowdrop 0.02b-14 Β· GPL-2.0-or-later WITH OpenSSL exception
- debian trixie: snowdrop 0.02b-15 Β· GPL-2.0-or-later WITH OpenSSL exception
- ubuntu jammy: snowdrop 0.02b-13 Β· GPL-2.0-or-later WITH OpenSSL exception
- ubuntu noble: snowdrop 0.02b-14build2 Β· GPL-2.0-or-later WITH OpenSSL exception
- ubuntu questing: snowdrop 0.02b-15
- ubuntu resolute: snowdrop 0.02b-17 Β· GPL-2.0-or-later WITH OpenSSL exception
- ubuntu stonking: snowdrop 0.02b-18build1 Β· GPL-2.0-or-later WITH OpenSSL exception
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms