This Sentence‌‌‌‌‍‌ Isn’‌‌‌‌‍‌‬t Just ‌‌‌‌‌‬‌‌a‌‌‌‌‍‬‬‍ Sentence‌‌‌‌‍‌‌‌‌‌‌‬‌‌‌‌‌‌‍‬‬‍‌‌‌‌‍‍‌‌‌‌‌‌

Some sentences have more than meets the eye, and we’re not talking about interpretive nonsense. Rather, some sentences may contain up to four paragraphs’ worth of hidden text, invisible to readers.

Thanks to Zero Width Obfuscation, it is possible to use Zero Width Characters – Unicode characters that are invisible even when you try to highlight them. They’re typically used for abstract foreign languages that require separators that don’t take up an entire space. In this case, they’re used to obfuscate and de-obfuscate hidden messages sent through text.

[inzerosight] published a browser extension that identifies, de-obfuscates, and obfuscates these messages for you on the web. It does this by querying each page for the Unicode of the Zero Width Characters (U+FEFF, U+200C, U+200D, U+200E, U+2060, U+180E) and highlighting where they’ve been spotted. The encoding replaces each Unicode character with a permutation of two of the Zero Width Characters, essentially doing a find and replace across the text message.

I’m just waiting to see how long it takes for Zero Width Obfuscation to become the next Konami Code Easter Egg.

22 thoughts on “This Sentence‌‌‌‌‍‌ Isn’‌‌‌‌‍‌‬t Just ‌‌‌‌‌‬‌‌a‌‌‌‌‍‬‬‍ Sentence‌‌‌‌‍‌‌‌‌‌‌‬‌‌‌‌‌‌‍‬‬‍‌‌‌‌‍‍‌‌‌‌‌‌

  1. It’s a nice topic, but…
    Great, you’ve added zero width characters to the article title but the extension doesn’t display them. It only states there’s some text there but no simple way to view it.

    1. view them? like looking at the page source?
      (from the tag but with added spaces because I don’t know if the HaD comments will treat it as text or try to interpret it)
      & #8203; & zwnj; & zwnj; & zwj; & #8203; & #8203;᠎ & #8203; & #8203; & #8203;

    2. Apart from [Sheldon]s recommendation to view the code, you are viewing the characters. Finding a renderer to render the characters doesn’t ‘display anything’ because there’s ‘nothing’ to display. The characters themselves are ‘nothing’. It’s like trying to do a calculation on a NaN value, you don’t get a result because there’s nothing to calculate.

    1. I use zero-width spaces to prevent Google Calendar from interpreting numbers, in descriptions of an event, as a time of day, even though it conflicts with the time I expressly selected, before entering the description.

  2. Hmm. I wonder if this could be used maliciously, like including extra commands in something meant to be copy-pasted, or a way to get an https cert for google.com with some hidden Unicode characters.

  3. Almost a lifetime ago at high school we used these chars in names for files that we didn’t want people to access or delete, or find on a computer system. Most of the time it was just using alt+0255 as a space replacement to mess with the IT teacher

Leave a Reply to Ostracus Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.