Unicode Text Steganography Encoders/Decoders
The idea of this page is to demo different ways of using Unicode in steganography, mostly I'm using it for Twitter. :) I have some notes on the bottom about how these Unicode characters show up or get filtered by some apps. Most of the algorithms should work ok on Twitter, Facebook however seems to strip out more characters. There seems to be no perfect character set.
Unicode Tags Stego:
This one uses non-printable tags in the range U+E0000 to U+E007F hidden after the spaces
(or at the end of the cover text). You must have at least one space.
Also, if you are using a client that shows tags as extra spaces, you may want to
use the "Put all Tags at the end" option.
More Advanced Unicode Stego:
This one is more complex than the one below, and
uses better looking Homoglyphs. Mostly it uses whitespace for encoding. Got some ideas and
suggestion from Mick Douglas
on this one. It uses 7 bit ASCII to save space.
This one is a bit crappy and causes a "ransom letter" type of look. It encodes bits by alternating between normal and full width Latin. It uses 7 bit ASCII to save space.
Notes:
Zero Width:
aU+180E U+200B U+200c U+200d U+FEFF U+2060 U+2061 U+2062 U+2063 U+2064
Test string: abcdefghijk
Chrome: U+180E shows as box. All else look good
On Android Twitter: U+200B U+200c U+200d U+FEFF are only ones that show with no
space.
On IE: Only U+200B U+200c U+200d U+FEFF U+2060 U+2062 showed no space, U+200c
shows as a vertical line, U+200d as a the same line with an x at the tope
Twitter on iOS: U+180E and U+2064 show as boxes, except in zoom where U+180E
shows as a box.
Facebook strips: U+200B U+FEFF
Winners? U+200B U+200c U+200d U+FEFF
Spaces:
U+00A0 U+180E U+2000 U+2001 U+2002 U+2003 U+2004 U+2005 U+2006 U+2007 U+2008
U+2009 U+200A U+202F U+205F U+3000
Test string: a b cd e f g h i j k l m n o p q r
Outlook: U+2005 becomes a real space
Twitter: Turns U+00A0 into real space
Facebook strips: Only allows U+180E U+205F U+3000, U+00A0 becomes a space
Safari and Chrome: U+200A looks a little short
On Android Twitter: Most look ok, except maybe U+200A
Most compatible spaces assuming not on Facebook: U+0020 U+2004 U+2005 U+2006 U+2008
U+2009 U+202F U+205F
Line and Paragraph Separators:
U+2028 U+2029
Test string: a
b
c
Facebook strips all.
Twitter replaces with: U+2070
Unicode Tags:
U+E0000 To U+E007F Unicode tags
Firefox: Looks good
iOS client: Shows boxes
Chrome OS X and Windows: Shows boxes
Android Twitter: Extra spaces
If you would like to republish one of the articles from this site on your webpage or print journal please contact IronGeek.
Copyright 2020, IronGeek