Recuperando conversaciones de Whatsapp a partir de los ficheros de Android en OS X

El sábado por la noche, en un arrebato ingenieril-obsesivo me puse a investigar cómo extraer información de los archivos de Whatsapp. Hace poco cambié mi viejo y fiel Samsung Galaxy S SCL i9003 por un Samsung Galaxy S III i9300, ambos con sistema operativo Android.

Androide simpático en el MWC 2012 de Barcelona

Androide simpático en el MWC 2012 de Barcelona

Antes de regalar mi teléfono antiguo, realicé una copia de todos los archivos de la memoria interna y la tarjeta para conservar fotos y archivos. Si bien no tenía interés en trasladar todo el histórico de conversaciones de Whatsapp al teléfono nuevo, sí que quería poder acceder en caso necesario al histórico desde mi ordenador, un Mac Book Pro con OS X Snow Leopard.

Lo primero es identificar dónde se guardan esos archivos y cómo podemos acceder a la información; en el caso de Whatsapp para Android, y si no disponemos de acceso root, estarán en /sdcard/WhatsApp/Databases/msgstore.db.crypt

Lo siguiente es identificar una herramienta que nos permita acceder a la información, y rápidamente encontré Whatsapp Xtract: Backup Messages Extractor / Database Analyzer / Chat-Backup. Esencialmente, es un script en Python que accede a la base de datos, la desencripta y genera un fichero HTML con nuestras conversaciones, que podemos leer o en el que realizar búsquedas. desde la comodidad de nuestro ordenador.

Puesto que el proceso requiere ejecutar un script en Python, necesitaremos instalar unas cuantas cosas en el ordenador, os lo resumo brevemente a partir de las instrucciones detalladas en inglés que tenéis aquí.

  1. Para asegurar que el fichero contiene todas las conversaciones, lo actualizamos, abriendo WhatsApp > [Botón de menú] > Ajustes > Ajustes de chat > Guardar conversaciones.
  2. Copiamos la base de datos de Whatsapp del teléfono al Mac (más sobre esto aquí). En Android estará en /sdcard/WhatsApp/Databases/msgstore.db.crypt 
  3. Extraed el archivo (Whatsapp_Xtract….zip) a una carpeta en tu directorio de usuario. Si mi usuario de Mac es Alberto, podemos llamarla Whatsapp, y estaría en /Users/Alberto/Whatsapp.
  4. Copiamos la base de datos msgstore.db.crypt hemos recuperado del teléfono a la carpeta Whatsapp recién creada. Si copias también la carpeta /sdcard/WhatsApp/Media, el fichero HTML generado enlazará las imágenes, vídeos, audio, etc. que te hayan enviado.
  5. Es necesario instalar Python y la librería PyCrypto para desencriptar la base de datos (instrucciones detalladas en inglés aquí)
    1. Necesitas tener instalado XCode primero. La última versión para Mountain Lion podéis encontrarla gratuitamente en la App Store, pero para Snow Leopard hay que buscarlo en la web de Desarrolladores de Apple. Hay que registrarse, la última versión gratuita es la 3.2.
    2. Podemos obtener la versión 2.7.2 de Python aquí. ¡Ojo, mi OS X tenía instalada la 2.6, y el script sólo funciona correctamente con la 2.7 o superior! Si hay errores, puede ser que estés intentando ejecutarlo con la versión incorrecta, revisa los paths y asegúrate de invocar la versión correcta. Más sobre esto aquí.
    3. Obtenemos la librería PyCrypto aquí. La descomprimimos, abrimos un terminal, nos desplazamos a la ruta donde hemos descomprimido la librería (puedes escribir “cd” y arrastrar la carpeta a la ventana del terminal, la ruta aparecerá escrita y podrás pulsar enter), y ejecutamos los siguientes comandos, introduciendo la contraseña de administrador cuando se nos solicite:
      1. python2.7 setup.py install
      2. python2.7 setup.py build
    4. ¡Estás listo para ejecutar el script!
  6. En un terminal, desplázate a la carpeta Whatsapp que hemos creado antes, que en mi ejemplo está en /Users/Alberto/Whatsapp, y ejecuta el siguiente comando:python2.7 whatsapp_xtract.py msgstore.db.crypt
  7. El fichero generado será un .html con un tamaño ligeramente superior al de la base de datos original (varios megas en mi caso, puede tardar un poco en abrirse en el navegador). ¡Listo! Los contactos estarán identificados por sus números de teléfono, pero eso no debería ser un gran problema.

Espero que os resulte útil. ¡Nos leemos!

About these ads

Acerca de multimaniaco

Part-time business and scientific hero with villainous plans to rule the world and make it a better place.
Esta entrada fue publicada en Profesional, Tecnología y etiquetada , , , , , , . Guarda el enlace permanente.

36 respuestas a Recuperando conversaciones de Whatsapp a partir de los ficheros de Android en OS X

  1. multimaniaco dijo:

    Me apunta Zor que tecleando en la terminal se puede descifrar el archivo sin necesidad de scripts:

    openssl enc -d -aes-192-ecb -in msgstore.db.crypt -out msgstore.db.sqlite -K 346a23652a46392b4d73257c67317e352e3372482177652c

    El fichero de base de datos resultante se puede abrir con muchas herramientas, entre ellas el add-on de sqlite para Firefox.

    Lo que añade el script en este caso es el formateado amigable en HTML de las conversaciones por contactos con smileys, imágenes, etc. De esta manera accedemos a los datos en bruto, pero requiere menos instalar herramientas.

    Más sobre esto en este enlace: http://www.securitybydefault.com/2012/05/descifrando-el-fichero-msgstoredbcrypt.html

  2. Javi dijo:

    Al añadir el comando de instalación me da el siguiente error http://img29.imageshack.us/img29/1161/capturadepantalla201304n.png ¿Cómo puedo solucionarlo? Muchas gracias!

    • multimaniaco dijo:

      Hola,
      el error que aparece en tu pantallazo indica “configure: error: no acceptable C compiler found in $PATH”. Lo que ocurre es que no has instalado XCode, o que no se ha instalado correctamente y no está encontrando en la variable de entorno $PATH la ruta en la que está instalado el compilador de C que incluye XCode. Vuelve al paso previo e instala XCode o un compilador de C equivalente.
      Espero que esto te ayude.

  3. luisete33 dijo:

    a mi me pasa lo mismo que al del comentario anterior, he instalado la ultima version de xcode correctamente, he reiniciado por si acaso no se habia cargado alguna configuracion y nada… el mismo error… alguna alternativa?

  4. Leo dijo:

    Hola multimaniaco, He desencriptado la base de datos con el Extractor. Lo que pasa es que no me aparecen los mensajes borrados de un chat que quería recuperar. Supuestamente tienen que estar ahí. De hecho, si abro el fichero de la base de datos desencriptada por ejemplo con Notepad y busco el numero de movil del chat que quiero, están ahí. Entre toda la basurilla de código encuentro los mensajes y se leen a trozos los textos entre los códigos. Pero al abrir con un programa de base de datos (el SQlite), no aparecen los mensajes borrados. ¿Sabes si hay algún código dentro de la base de datos que los identifique como eliminados para que no los muestre? Estar están, pero ¿cómo se recuperan? Ni en lo que se genera como html por el Extractor, ni lo que abre SQlite (que es lo mismo)aparecen…. ¿Alguna idea? Por un lado me intriga desde el punto de vista de problema “intelectual” y por otro lo que necesito es recuperar ese chat y no la basurilla… ¿Se podrá hacer una query en la base de datos para que muestre sólo los mensajes de ese número?

    • multimaniaco dijo:

      Hola, si encuentras el texto de los mensajes borrados en el archivo de base de datos, efectivamente, es posible que el chat siga ahí y que el borrado sea lógico, es decir, que se haya marcado como “borrado” y no se recupere en las consultas que reconstruyen las conversaciones. Lamentablemente no puedo darte una solución directa, yo no he programado el script extractor. Ahora bien, revisando su código, la estructura de la base de datos SQlite desencriptada y las condiciones de las consultas que se hacen contra ella es muy posible que seas capaz de modificarlo para que devuelva todas las conversaciones, y no sólo las borradas. Con ese punto de partida debería ser factible recuperar lo que haya.

  5. Ric dijo:

    Hola que tal, mira yo estoy usando un PC con Win, en cuanto al Xcode que mencionas que otro programa puedo buscar para que no tenga problemas con Phyton, a la hora de cargar el archivo.
    Saludos

    • multimaniaco dijo:

      Me temo que con Windows no puedo ayudarte, no obstante no debería ser difícil encontrar en Google instrucciones para instalar la última versión de Python y ejecutar el script.

  6. Ivan dijo:

    Hola ya tengo instalado la ultima vesion del xcode y la de activepython 2.7 pero el problema lo tengo en el terminal si pongo cd y arrastro la carpeta me manda un error, pero si arrastro la carpeta directa sin copiar el cd me dice que es un directorio
    https://dl.dropboxusercontent.com/u/170905/01.png

    luego ingreso el comando setup.py install y manda otro error
    https://dl.dropboxusercontent.com/u/170905/02.png

    estare haciendo algo mal?

    • Ivan dijo:

      luego vi que tenia un error porque no le daba espacio entre el cd y la direccion de la carpeta y logre entrar al directorio pero ahora intento meter el comando y me manda error
      https://dl.dropboxusercontent.com/u/170905/02.png

      • multimaniaco dijo:

        Ivan, lo siento, pero si no sabes usar un comando cd para moverte por los directorios a través del terminal, tendrás que buscarte un tutorial de bash shell en Google y aprender. Esto no tiene nada que ver con el script o la instalación de python y sus librerías.

  7. Ivan dijo:

    disculpa les pido arriba copie el mismo link para mi segundo comentario
    aqui esta la pantalla del ingreso del comando
    https://dl.dropboxusercontent.com/u/170905/03.png

    estos son los archivos que contiene la carpeta python 2.6
    https://dl.dropboxusercontent.com/u/170905/04.png

    • multimaniaco dijo:

      Ivan,

      el comando correcto es este, como se indica en el punto 3.1 arriba.

      python2.7 setup.py install

      Si no tratas de entender lo que estás haciendo y sigues un tutorial a ciegas, puedes estar haciendo con tu ordenador cualquier cosa. Tu verás.

  8. Ivan dijo:

    Gracias multimaniaco, avance en cuanto al comando pero ahora me envia otro error
    https://dl.dropboxusercontent.com/u/170905/05.png

  9. bob dijo:

    Con este proceso tambien deben aparecer las conversaciones borradas ?

  10. ana dijo:

    jo no entiendo nada, yo he intentado desinstalar y volver a instalar pero sin éxito y sé que la conversación que me interesa debe estar ahi porq ue yo no la he borrado, se actualizó wasap y en la actualizacion se borraron todos los mensajes. no entiendo mas, uf.

  11. Pilar dijo:

    Al ejecutar el comando python2.7 setup.py install me sale este error:

    error: Unable to find vcvarsall.bat

    Sabéis por que puede ser?

  12. juan dijo:

    hola a todos !! hay una aplicacion para Mac que evita andar con le terminal y sus consecuentes errores, si no se tiene cierta practica… se llama whatsappmigrator y solo tienes que soltar el archivo en una de las ventanas y desencriptarlo, como resultado te da un archivo .db que puedes visionar en cualquier aplicacion sqlite (como sqlitemanager u otras) o….separar fotos y archivo de texto con las conversaciones en un archivo de texto arrastrando este archivo .db en la aplicacion file juicer…enfin….espero haber ayudado…!! saludos

  13. tiernesita dijo:

    Estimado:
    como leo un mensaje de whatsapp en mi pc extraido desde una memoria de un celular. he tratado de hacerlo me arroja solo numeros y garabatos imposible de leer. ¿ con que programa se puede leer?

    agradeceria su ayuda!!!

    anonima

  14. desesperada dijo:

    Por favor ayudame a desencriptar unos archivos de wathsapp que tengo yo soy, mala para esto y de esto depende muchas cosas en mi vida porfis enviame tu numero y yo te envio los archivos que tengo y si tu me puedes colaborar yo te daria una remuneracion aunque no tengo mucho dinero para eso pero estoy desesperada ayudame. Espero tu respuesta en mi correo

    • multimaniaco dijo:

      Lo lamento, pero no puedo hacer lo que me pides. Esta guía está pensada para que una persona acceda a sus propios archivos por sus propios medios. Yo no puedo abrir los ficheros de otra persona.

  15. jonathan dijo:

    tengo archivos .bak alguna opcion para abrirlos? gracias

  16. jess dijo:

    Si passo las conversaciones desde el gmail tambien sirve?

  17. ariel dijo:

    amigos no entiendo nada alguien me puede aayudar me sale todo mal bahiaseeds@gmail.com

  18. Nk dijo:

    Hola.
    Ya he desencriptado las bases del Whatssap pero no contienen los chat borrados con antiguedad superior a una semana. Hay alguna manera de recuperar los chat que no están incluidos en las copias de seguridad?

  19. nico dijo:

    alguien sabe alguna forma facil de leer los mensajes en windows

  20. Fernando dijo:

    Hola
    Fantástico hilo.
    Tengo un problema: no puedo copiar los ficheros del tipo msgstore-2013-11-28.1.db.crypt desde el teléfono al pc. Es algo muy raro. Conecto el teléfono y copio cualquier fichero sin problemas pero cuando intento arrastrar estos ficheros no hace nada. Después de varios intentos he copiado un par de ellos. Pero los demás sigo sin poder copiarlos al pc.

    El fichero msgstore.db.crypt se copia perfectamente a la primera, pero las copias de días anteriores no puedo.

    Te ha ocurrido algo parecido. Puedes sugerir algo que me ayude.

    Gracias por el fantástico hilo, con explicaciones claras y concisas.

    Saludos

    Fer

  21. gise' dijo:

    Mira nada q ver creo… Pero estaba en whatsaap a lo mas bien no .. Charlando… De repente me aparecio un cartel q no m aparecio nunk que decia obteniedno copia de seguridad.. Mientras estaba en la charla.. Me preocupa q me lo hayasn hackedo. Fuck! Graciiiasss.

  22. alejandro dijo:

    Con la ultima actualizacion de waht app ya no se puede desencriptar los archivos de data base. …ya lo intente varias veces y no puedo…antes si podia abrir los archivos data base. …ya se sabe algo de como desencriptar con la nueva actualización? ? Gracias

  23. mae dijo:

    por favor alguien q me ayude a desencriptar unas conversaciones en whatsapp es urgente

  24. Jonas dijo:

    funciona para crytp5?

  25. Robyer dijo:

    me sale ”
    que estoy haciendo mal?

    • Robyer dijo:

      1 warning generated.
      cc -bundle -undefined dynamic_lookup -arch x86_64 -arch i386 -Wl,-F. build/temp.macosx-10.9-intel-2.7/src/_counter.o -o build/lib.macosx-10.9-intel-2.7/Crypto/Util/_counter.so
      running install_lib
      creating /Library/Python/2.7/site-packages/Crypto
      error: could not create ‘/Library/Python/2.7/site-packages/Crypto': Permission denied
      MacBook-Pro-de-Roberto:pycrypto-2.6.1 Admin$ python2.7 setup.py build
      running build
      running build_py
      running build_ext
      running build_configure
      warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
      MacBook-Pro-de-Roberto:pycrypto-2.6.1 Admin$

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s