Whatsdog detecta si su víctima está en línea o no. ¿Qué están haciendo en el fondo? Sabemos que Whatsapp no proporciona ninguna API o SDK para esto, entonces, ¿cómo puede alguien monitorear este tipo de actividad sensible?
En realidad, se trata de una API no documentada de Whatsapp y puede comunicarse a través de Websockets para obtener el estado en línea de las personas.
Este artículo le mostrará cómo está hecho e incluso proporciona un PoC para que se ejecute en su propio navegador. Por lo tanto, este PoC se puede modificar para que sea una aplicación para PC o una aplicación para teléfonos inteligentes.
Si bien Whatsapp o Facebook Messenger no proporcionan una API oficial para el estado en línea, a menudo es fácil usar su API interna no oficial, es decir, para determinarla. No puedo hablar por Whatsapp porque no soy un usuario o estoy menos familiarizado con su API interna, pero he jugado con esto en Messenger. La diferencia conceptual es insignificante para cualquier aplicación que proporcione una función de estado en línea, por lo que usaré el Messenger de Facebook como ejemplo, ya que estoy más familiarizado con él.
Aquí una publicación de blog (cómicamente escrita) que explica como se hace con facebook Si no tienes ganas de leerlo y profundizar en los detalles técnicos o leer todo el tema, te proporcionaré un breve resumen de cómo funciona aquí.
En Facebook Messenger, hay un pequeño punto verde junto a su nombre que indica que están en línea, ¿verdad? Al igual que esto:
Bueno, el estado de ese punto, o más bien los datos que indican su estado, se obtiene mediante una API no documentada o no oficial. Es decir, una API utilizada internamente que no está destinada a ser utilizada por nadie más que desarrolladores de Facebook y, por lo tanto, no tiene promesas y se romperá todo el tiempo si intenta usarla. Ese es un punto aparte. El punto es que hay una solicitud que sale periódicamente (es decir, sondeada) que le da el estado en línea de sus amigos. Si realiza una encuesta a lo largo del tiempo, podrá saber cuándo un usuario realiza la transición desde fuera de línea - > en línea o viceversa.
Las aplicaciones de terceros utilizan estas API y las encuestan tal como lo hace la aplicación oficial. Entonces, bueno, hacen lo que quieran con esos datos. Ya sea registrándolo para graficar sus patrones de uso, notificándole cuando están en línea, lo que sea.
Si esta respuesta no satisface su curiosidad, lo invito a leer el artículo que vinculé anteriormente. Es informativo, atractivo, divertido y (!) Tiene un repositorio de github que te permite probarlo tú mismo.
Como Nico dice que están usando una API de WhatsApp. El cliente de WhatsApp es capaz de verificar si sus contactos están en línea o no, lo que significa que tiene que haber alguna forma de hacerlo.
Es bastante fácil para alguien descompilar el código o MitM sus propias conexiones para leer lo que hace la aplicación. El único riesgo adicional sobre una API publicada es que no tiene la obligación de notificar a otras partes antes de cambiarla o eliminarla.
¡Nunca debes confiar los secretos a un dispositivo cliente!
Lea otras preguntas en las etiquetas whatsapp android account-security