Cómo convertir msgstore.db.crypt7 a msgstore.db desde whatsapp en android?

Quiero agregar automáticamente los contactos que el mensaje a mí en WhatsApp, así que necesito tener acceso a la base de datos de Whatsapp para mi programa, pero la base de datos de Whatsapp no ​​está en formato de .db y está en el formato .crypt7 y no puedo utilizarlo. ¿Cómo puedo utilizar Whatsapp db o convertir .crypt7 a .db ?

Como Ashesh mencionó, puede utilizar la herramienta en el sitio web de desarrolladores XDA: [TOOL] WhatsApp Xtract: Extractor de mensajes de copia de seguridad / Analizador de bases de datos / Chat-Backup

Alternativamente, puede hacerlo manualmente de la siguiente manera:

La base de datos WhatsApp se almacena sin cifrar en esta ruta en el dispositivo Android:

 /data/data/com.whatsapp/databases/msgstore.db 

Las copias de seguridad de la base de datos también se almacenan cifradas en la tarjeta SD normalmente en la siguiente ubicación:

 /sdcard/WhatsApp/Databases/msgstore.db.crypt7 

La clave única para las bases de datos de copia de seguridad cifradas se almacena aquí:

 /data/data/com.whatsapp/files/key 

El acceso al directorio / data / data requiere acceso root. Alternativamente ADB (Android Debug Bridge) se puede utilizar para extraer los archivos anteriores después de arrancar en recuperación en el dispositivo.

Cómo descifrar WhatsApp crypt7 Mensajes de la base de datos:

(Los comandos a continuación se ejecutan desde un entorno Linux)

  1. Archivo de clave de extracción: /data/data/com.whatsapp/files/key
  2. Extraer el archivo crypt7: /sdcard/WhatsApp/Databases/msgstore.db.crypt7
  3. Extraer las claves de descifrado del archivo "clave" extraído en el paso 1:

    • Tecla AES de 256 bits:

      hexdump -e '2/1 "%02x"' key | cut -b 253-316 > aes.txt

    • IV (vector de inicialización):

      hexdump -e '2/1 "%02x"' key | cut -b 221-252 > iv.txt

  4. Strip Header en crypt7 Archivo:

    dd if=msgstore.db.crypt7 of=msgstore.db.crypt7.nohdr ibs=67 skip=1

    Nota: El tamaño del archivo despojado de encabezado en bytes debe ser divisible por 16

  5. Decrypt crypt7 Archivo:

    openssl enc -aes-256-cbc -d -nosalt -nopad -bufsize 16384 -in msgstore.db.crypt7.nohdr -K $(cat aes.txt) -iv $(cat iv.txt) > msgstore.db

Los desarrolladores de XDA han hecho herramientas para llevar a cabo estas operaciones.

Aquí hay uno (sólo en las ventanas)

[HERRAMIENTA] WhatsApp Xtract

Es viejo, pero estoy seguro de que habrá nuevos más allá.

  • Android.database.sqlite.SQLiteDatabase.rawQuery () no está actualizando una columna DATETIME con una función SQLite datetime ()
  • Excepción "tabla ... no tiene columna nombrada ..."
  • Android SQLiteException: índice de enlace o columna fuera del rango
  • Establecer un valor predeterminado en una columna en SQLite
  • android sqlite consulta con múltiples donde
  • Cursor.moveToNext sin moverToFirst
  • Código de error SQLite 17
  • Varios Table SQLite DB Adapter (s) en Android?
  • Cómo utilizar la base de datos SQLite precargada en Android de Activos
  • Cómo ejecutar una consulta con regexp en Android
  • ¿DÓNDE IN cláusula en Android sqlite?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.