Today morning one of my friends sent me a message on Whatsapp saying “Don’t Touch Here”! But it is in my blood to do exactly opposite of what I am instructed not to do something! I touched the message and to my shock, My WhatsApp hanged for few moments and crashed. I looked at other groups on WhatsApp and everywhere I found similar message being sent to prank each other. There were discussions whether it was some kind of virus, or whether our phones got damaged by sending a message. Apparently, I decided to dig deep and find the cause.
I outlined and noticed there are a few spaces given before the message, so it meant there was something hidden in those spaces. A few months back, iOS faced a similar case where it was not able to work with a Telugu Character. Facebook had a similar issue when it used to show blank Name and Surnames on the profile. I immediately sent the conversation to my email and downloaded the text file on my laptop to have a comfortable view.
I have decoded the text and it was nothing more than a bug with WhatsApp. Similar bugs might happen with other applications as well, it worked on my Inbuilt notes app and telegram app too. I opened the text file using Kali’s vim editor and voila it displayed a huge string of meaningless characters as seen in the below image.
I opened the same text file containing the chat, using windows command line tool with Type <file-name> which is a useful utility to see hidden characters in a text file. There were rows of unknown hidden characters in the message before it says ‘Don’t Touch Here’. If you open the same text using any programming editor such as Sublime, you can see it actually contains 1988 characters and not just blank spaces
What are those characters?
As we notice from the first message, the string only repeats two characters i.e. <200e> and <200f>. Some text editors represent them as \u200e and \u200f respectively. These characters are LRM and RLM, two invisible formatting characters that are used in word processing to distinguish between left-to-right text and right-to-left text. The LRM is used to represent languages that are written in the Left to Right Direction such as English. The RLM is used to represent languages that are written in Right To Left Direction such as Arabic and Hebrew. These characters tell the application how to display the text and they don’t themselves are not displayed. They don’t have any other semantic impact either. All these details can be found here
Why are these characters hidden on mobile?
As stated by the Unicode, these characters are very light-weight formatting. They act exactly like right-to-left or left-to-right characters, except that they do not display or have any other semantic effect. They don’t have a display meaning attached to them and hence are not displayed. This confuses WhatsApp or other android application, might be the Android OS itself and it displays only blank spaces.
What happens that Hangs Whatsapp?
By the above decoding, we can put up logic that this string of these LRM and RLM characters instruct WhatsApp to keep changing the direction of the text. That causes WhatsApp to perform a lot of processing. This processing freezes the UI for a while for WhatsApp to complete the process. On some phones, WhatsApp returns back to the stage where it was. On few phones, WhatsApp crashes, this depends on how the OS handles processes.
Will this damage our phones?
Though it looks like a mere bug in some applications, we can not predict what can go wrong. Everyone’s OS is differently made and we don’t know how OS or the applications will handle such processes. There is no report of any damage happened due to this yet, and it turns out to be just a prank. But we should be careful while using our smartphones.