From db4aa3c0143f1685ce0db9954b24bd56769fe59f Mon Sep 17 00:00:00 2001 From: Kevin Froman Date: Tue, 28 Mar 2017 12:19:45 -0500 Subject: [PATCH] improved readme --- README.md | 34 +++++++++++++++++++++++++++++++++- snow.jpg | Bin 0 -> 22767 bytes 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 snow.jpg diff --git a/README.md b/README.md index 8f4f18b..c0d3a88 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,36 @@ -# snow2 +# Snow2 + Obfuscate & Encrypt Text as White-Space Demo: [https://ChaosWebs.net/snow2](https://chaoswebs.net/snow2/) + +![snow image](snow.jpg) + +# About + +Snow2 is a web app inspired by the [original snow program](http://darkside.com.au/snow/) to use whitespace/zero-width characters to obfuscate messages within the whitespace of other content. + +# License + +MIT license, see LICENSE file. + +# Warnings + +* No steganography is perfect, your message may be discovered especially by skilled adversaries. +* Some text editors (like vim) show zero width characters +* Some clients/places may strip whitespace characters +* Use encryption if you really need to protect your messages. Use a good password but keep in mind that no encryption is perfect (Snow2 uses cryptojs AES) +* It is best to save the site offline to avoid your messages being intercepted by possible malicious code sent from (my) web server +* The larger your message, the more obvious it is that it is there. + +# Roadmap (to do) + +* Ability to automatically spread/retrieve message content into paragraphs of "cover" text + +* CLI version + +* Android app + +# Contributing + +Feel free to make a pull request if you feel that you have improved the software. diff --git a/snow.jpg b/snow.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0b8d3b14bd42ce608e79aff0a5a5ad27f02fbaa1 GIT binary patch literal 22767 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 literal 0 HcmV?d00001