martes, 6 de noviembre de 2012

Conoce tu contraseña de Whatsapp en Windows Phone

Todo el mundo conoce WhatsApi y derivados de éste para poder hacer uso de Whatsapp sin tener que emplear el teléfono móvil. La contraseña que se emplea para Android se basa en el IMEI del dispositivo y para iPhone la dirección MAC de la antena WiFi. Quería descubrir cómo funciona en Windows Phone y aquí os expongo mis resultados.

Lo primero fue extraer las librerías WhatsApp.dll y WhatsAppCommon.dll del teléfono del mismo modo que lo hice con la base de datos en mi anterior post

Con las DLLs en el PC empleé un decompilador de .Net para poder echar un vistazo al código. Existen varias aplicaciones de este tipo como son ILSpy, CCI Explorer, .Net Reflector...

Dentro de WhatsApp.dll encontramos un método llamado CheckCode(string) de la clase EnterCode del espacio de nombres WhatsApp.verify.


Podemos observar que uno de los parámetros (text) del WebRequest es la contraseña que estamos buscando. Vemos que la crea obteniendo el DeviceUniqueId del dispositivo para luego mandarlo al método ToPassword que se encuentra en WhatsAppCommon.dll.


Desde ToPassword llama al método GetHashString de la clase MD5Core basada en la de MD5Core de Silverlight.





Para ir más deprisa decidí hacer una aplicación que me generase la contraseña importando las librerías. Para poder hacer uso de estas DLLs en Visual Studio hay que desbloquearlas antes. How to: Use an Assembly from the Web in Visual Studio.


Con el siguiente código bastaba para obtener la contraseña y probar:

txtPass.Text = ((byte[])Microsoft.Phone.Info.DeviceExtendedProperties.GetValue("DeviceUniqueId")).ToPassword();

También le agregué un botón que me permitiese copiar la clave para su posterior prueba.

Y ahora hagamos una petición a los servidores de Whatsapp para verificar si es correcta o no...


¡Premio! status="ok"

Probemos desde WhatsApi pero antes modifiquemos la función encryptPassword del fichero whatsprot.class.php para que al introducir nuestra contraseña en whatsapp.php no le aplique ningún cambio.


Correcto.

Espero os sea útil.

3 comentarios:

Juanan dijo...

Grande Robe :)

Anónimo dijo...

Hola Robe! puedes compartir la App que te haz creado. Necesito recobrar unos mensajes. Mil gracias.

windowsphonefan dijo...

Hola Robe !
nos puedes regalar el .XAP de la app que te construiste? Mil gracias.