¿Cómo funciona el bóton negro de Whatsapp/Telegram?

¿Cómo funciona el bóton negro de Whatsapp/Telegram?

otras-versiones-telegram-whatsapp

Mensaje con el Bóton Negro: Gihub

Mensaje sin el Bóton: Github

Los códigos que más se repiten en los dos casos son:

‌
‎

Y el que menos se repite:

‏

Estos marcadores son invisibles para el usuario y le dicen a las aplicaciones la dirección en la que deben mostrar los carácteres. Esta función fue creada para dar soporte a las lenguas rtl, es decir, para los idiomas en los que se escribe de izquierda a derecha.

Singnificado de cada carácter

‌ ➡️ Carácter Unicode "Zero Width Non-Joiner"
‎ ➡️ Carácter Unicode "LEFT-TO-RIGHT MARK"
‏ ➡️ Carácter Unicode "RIGHT-TO-LEFT MARK"

Funcionamiento

Estos caracteres invisibles mandan directrices al procesador para que cambie de dirección la escritura de forma constante y alterna, y su aglomeración hace que la memoria se sature y la aplicación se vea obligada a reiniciarse.
En el caso de Whatsapp, existe una protección de memoria que consiste en que a la aplicación se le asigna una cantiadad de memoria predefinida, que es menor a la memoria total del equipo en el que se está ejecutando. Esto permite que si por cualquier motivo hay una saturación de memoria masiva, no afecte a las demás funcionalidades del equipo anfitrión para no tener que reiniciarlo.
Gracias a este método solo hay que reiniciar la aplicación (el proceso en memoria).

La forma en la que los caracteres se camuflan es mediante el no-soporte de ciertos estándares (como el UNICODE) en la aplicación. Poniéndolo en la práctica:
Sabemos que ‘%E2%80%8E‘ == LEFT-TO-RIGHT MARK; pero si escribimos directamente “%E2%80%8E” no se camuflará porque está escrito en forma de caracter, habría que pasarlo a formato UNICODE, que tiene exactamente el mismo significado pero al estar representado por caracteres especiales no se mostrará en pantalla.

Finalmente, la forma en la que el script se ejecuta es mediante el cambio del inicio del mensaje. Recordemos que en UTF-8 se puede apreciar cómo en el inicio del mensaje pone:

Cuando en realidad, lo que vemos es:
& #x26AB; (Que es el emoticono del botón negro).

Es decir, presionando el emoticono estamos ejecutando el ‘TEXT’, que son todas las MARKS (LEFT-TO-RIGHT y RIGHT-TO-LEFT).

Este tipo de “camuflaje” en la escritura también se emplea para proteger los derechos de autor en algunas páginas web: por ejemplo si alguien copia el texto de una web y lo pega en otro lugar, también copia el contenido invisible, y pasando el texto por un escáner se puede saber el contenido del texto invisible.

Read more