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.
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í.
- Para asegurar que el fichero contiene todas las conversaciones, lo actualizamos, abriendo WhatsApp > [Botón de menú] > Ajustes > Ajustes de chat > Guardar conversaciones.
- 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
- 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.
- 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.
- Es necesario instalar Python y la librería PyCrypto para desencriptar la base de datos (instrucciones detalladas en inglés aquí)
- 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.
- 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í.
- 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:
- python2.7 setup.py install
- python2.7 setup.py build
- ¡Estás listo para ejecutar el script!
- 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
- 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!






