Skip to content

CarlosFdezJim/whatsapp-backup-extractor

Repository files navigation

WhatsApp Database Decryptor

Desencripta y extrae mensajes de copias de seguridad locales de WhatsApp (Android) en formato legible (JSON, CSV o TXT).


⚠️ Aviso importante

  • Este proyecto es solo para uso personal y educativo.
  • No fomenta ni apoya el acceso no autorizado a datos ajenos.
  • El uso de este script requiere acceso root en Android para obtener la clave de cifrado (key).
  • No es posible descifrar copias de seguridad de Google Drive ni de iCloud directamente.
  • No es posible fusionar historiales de Android y iPhone.

¿Qué hace este proyecto?

  • Permite seleccionar un archivo de copia de seguridad de WhatsApp (msgstore.db.crypt12, crypt14, crypt15).
  • Desencripta el archivo usando la clave de cifrado (key).
  • Extrae los chats en formato legible (JSON, CSV o TXT).
  • Incluye una interfaz gráfica (Tkinter) y modo línea de comandos.
  • El resultado es una tabla con: nombre del contacto, mensaje, fecha y hora.

Limitaciones

  • Necesitas acceso root en tu Android para extraer la clave de cifrado (key).
  • No puedes obtener la clave sin root.
  • No puedes descifrar copias de seguridad de Google Drive ni de iCloud.
  • No fusiona historiales de Android y iPhone.
  • Solo funciona con copias de seguridad locales de WhatsApp (no con backups en la nube).

Instalación

  1. Clona este repositorio:

    git clone https://github.com/tuusuario/whatsapp-database-decryptor.git
    cd whatsapp-database-decryptor
  2. Instala las dependencias:

    pip install -r requirements.txt

    O en Linux/Mac:

    chmod +x install.sh
    ./install.sh

Cómo obtener la clave de cifrado (key)

Necesitas un móvil Android con acceso root.

  1. Activa la depuración USB y conecta el móvil al PC.
  2. Abre una terminal y ejecuta:
    adb devices
    adb shell
    su
    cp /data/data/com.whatsapp/files/key /sdcard/key
    exit
    exit
    adb pull /sdcard/key ./key
  3. Extrae la base de datos:
    adb pull /sdcard/WhatsApp/Databases/msgstore.db.crypt12 ./msgstore.db.crypt12
  4. Si usas WhatsApp Business, la ruta es /data/data/com.whatsapp.w4b/files/key.

Uso

Interfaz gráfica (recomendado)

python whatsapp_decryptor.py
  1. Selecciona el archivo key.
  2. Selecciona el archivo msgstore.db.crypt12 (o crypt14/crypt15).
  3. Elige el formato de salida (JSON, CSV, TXT).
  4. Haz clic en “Desencriptar y Extraer”.

Línea de comandos

python whatsapp_decryptor.py --cli

Sigue las instrucciones en pantalla.

Versión avanzada (soporta crypt12/14/15, solo CLI)

python whatsapp_advanced_decryptor.py --cli

Diferencias entre scripts

  • whatsapp_decryptor.py: Incluye interfaz gráfica (ventana) y modo terminal. Si lo ejecutas sin argumentos, abre una ventana fácil de usar. Si lo ejecutas con --cli, funciona en la terminal.
  • whatsapp_advanced_decryptor.py: Solo funciona en modo terminal (línea de comandos), pero soporta más formatos de copia de seguridad y es más flexible para usuarios avanzados.

Formatos de salida

  • JSON: Lista de mensajes estructurados.
  • CSV: Compatible con Excel y hojas de cálculo.
  • TXT: Mensajes en texto plano.

Preguntas frecuentes

¿Puedo usar esto con copias de Google Drive o iCloud?

No. Solo funciona con copias locales y la clave extraída de un Android rooteado.

¿Puedo fusionar chats de Android y iPhone?

No. WhatsApp no permite fusionar historiales entre plataformas.

¿Puedo obtener la clave sin root?

No. Android protege ese archivo y solo es accesible con root.

¿Puedo exportar chats desde la app de WhatsApp?

Sí, pero solo uno por uno y en formato .txt.


Seguridad y legalidad

  • No compartas tu archivo key ni tus copias de seguridad.
  • Respeta la privacidad y la ley: solo usa esto con tus propios datos.
  • El autor no se responsabiliza del uso indebido.

Créditos

  • Basado en ingeniería inversa y documentación pública sobre el cifrado de WhatsApp.
  • Inspirado en proyectos de la comunidad de XDA y GitHub.

Licencia

MIT License


¿Dudas o sugerencias?

Abre un issue o un pull request en este repositorio.

About

Herramienta Python para desencriptar copias de seguridad locales de WhatsApp (Android) y extraer chats a JSON, CSV o TXT.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages