msgstore.db (Base de Datos WhatsApp)

Base de datos SQLite donde WhatsApp almacena todos los mensajes, multimedia y metadatos en dispositivos Android. Ubicación, estructura, análisis forense y recuperación de datos eliminados.

10 min de lectura

msgstore.db - Base de Datos de WhatsApp

El archivo msgstore.db es la base de datos principal de WhatsApp en dispositivos Android donde se almacenan todos los mensajes, conversaciones, metadatos y referencias a archivos multimedia de la aplicación. Es el elemento central del análisis forense de WhatsApp.

¿Qué es msgstore.db?

msgstore.db es un archivo de base de datos SQLite (Structured Query Language Lite) que WhatsApp crea y mantiene en el almacenamiento interno del dispositivo Android. Contiene:

  • Mensajes de texto: Todo el historial de conversaciones
  • Metadatos: Fechas, horas, estados de entrega/lectura, IDs de mensaje
  • Información de contactos: Números de teléfono, nombres, IDs de WhatsApp
  • Configuración de grupos: Miembros, administradores, historial de cambios
  • Referencias a multimedia: Rutas de audios, fotos, vídeos, documentos
  • Mensajes eliminados: En algunos casos, en el espacio libre de la base de datos

Ubicación del Archivo

Android (sin cifrar):

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

Android (cifrado - desde 2021):

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

(Las versiones crypt14, crypt15 están cifradas con clave derivada del dispositivo)

Backups en tarjeta SD o almacenamiento:

/sdcard/WhatsApp/Databases/msgstore.db.crypt15
/sdcard/Android/media/com.whatsapp/WhatsApp/Databases/msgstore-YYYY-MM-DD.1.db.crypt15

iOS (iPhone):

En iOS, WhatsApp almacena los datos en un formato diferente dentro del backup cifrado de iTunes o iCloud. No utiliza msgstore.db, sino archivos .sqlite con estructura propietaria en el sandbox de la app.

Estructura de la Base de Datos

msgstore.db es una base de datos SQLite, que consiste en múltiples tablas relacionadas:

Tablas Principales

1. messages - Tabla de mensajes

Contiene cada mensaje individual con campos:

CampoDescripción
_idID único del mensaje
key_remote_jidID del chat (número de teléfono o grupo)
key_from_me0 (recibido) o 1 (enviado)
dataContenido del mensaje de texto
timestampFecha y hora en formato Unix (milisegundos)
received_timestampMomento de recepción del mensaje
media_mime_typeTipo de archivo multimedia (image/jpeg, audio/ogg, etc.)
media_sizeTamaño del archivo multimedia en bytes
media_nameNombre original del archivo
media_urlURL de descarga (para mensajes multimedia)
statusEstado: 0 (recibiendo), 4 (enviado), 5 (entregado), 13 (leído)
latitude / longitudeCoordenadas de ubicaciones compartidas

2. chat - Tabla de conversaciones

Lista de todos los chats (individuales y grupos):

CampoDescripción
_idID único del chat
jidIdentificador del chat (número o grupo)
created_timestampFecha de creación del chat
last_message_row_idID del último mensaje
archived0 (no archivado) o 1 (archivado)
sort_timestampÚltimo mensaje para ordenar lista

3. group_participants - Participantes de grupos

Miembros de cada grupo:

CampoDescripción
gjidID del grupo
jidID del participante
admin0 (miembro) o 1 (administrador)

4. receipts - Confirmaciones de lectura

Estados de entrega y lectura de mensajes:

CampoDescripción
key_idID del mensaje
receipt_device_timestampMomento de lectura/entrega
receipt_server_timestampTimestamp del servidor
statusEstado confirmado

5. message_quoted - Mensajes citados (respuestas)

Referencias a mensajes respondidos/citados.

URLs detectados automáticamente en mensajes.

Análisis Forense de msgstore.db

1. Extracción del Archivo

Método 1: Root / ADB (Android Debug Bridge)

Con permisos root o mediante ADB:

adb shell
su
cp /data/data/com.whatsapp/databases/msgstore.db /sdcard/

Método 2: Herramientas Forenses Profesionales

  • Cellebrite UFED: Extracción física completa
  • Oxygen Forensic Detective: Backup lógico + físico
  • MSAB XRY: Extracción avanzada con bypass de cifrado

Método 3: Backup local

Si hay backup en almacenamiento externo, puede extraerse directamente (requiere desencriptado si es .crypt15).

2. Descifrado (si está cifrado)

Desde WhatsApp 2.21.x, msgstore.db está cifrado con AES-256-GCM usando clave derivada del dispositivo.

Herramientas de descifrado:

  • whatsapp-viewer (para versiones antiguas)
  • WhatCrypt (descifrado de crypt12-crypt15)
  • Scripts custom con clave extraída del /data/data/com.whatsapp/files/key

La clave está en:

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

(Requiere root para acceder)

3. Apertura y Análisis

Una vez descifrado, msgstore.db puede abrirse con cualquier herramienta SQLite:

Software recomendado:

  • DB Browser for SQLite (gratuito, visual)
  • SQLite Expert (avanzado, con queries)
  • Autopsy (framework forense completo)
  • Belkasoft Evidence Center (suite forense profesional)

4. Consultas SQL Útiles

Extraer todos los mensajes de una conversación:

SELECT
  datetime(timestamp/1000, 'unixepoch', 'localtime') as fecha,
  CASE WHEN key_from_me = 1 THEN 'Yo' ELSE 'Otro' END as remitente,
  data as mensaje
FROM messages
WHERE key_remote_jid = '[email protected]'
ORDER BY timestamp ASC;

Contar mensajes por contacto:

SELECT
  key_remote_jid as contacto,
  COUNT(*) as total_mensajes
FROM messages
GROUP BY key_remote_jid
ORDER BY total_mensajes DESC;

Buscar mensajes con palabras clave:

SELECT
  datetime(timestamp/1000, 'unixepoch', 'localtime') as fecha,
  key_remote_jid as contacto,
  data as mensaje
FROM messages
WHERE data LIKE '%fraude%' OR data LIKE '%transferencia%'
ORDER BY timestamp DESC;

Extraer mensajes multimedia:

SELECT
  datetime(timestamp/1000, 'unixepoch', 'localtime') as fecha,
  media_mime_type as tipo,
  media_name as nombre_archivo,
  media_size as tamaño,
  media_url as url
FROM messages
WHERE media_mime_type IS NOT NULL
ORDER BY timestamp DESC;

Recuperación de Mensajes Eliminados

¿Se pueden recuperar mensajes borrados?

Sí, en muchos casos, mediante técnicas de análisis forense:

1. WAL (Write-Ahead Log)

WhatsApp usa SQLite en modo WAL (Write-Ahead Logging), que mantiene un archivo:

msgstore.db-wal

Este archivo puede contener transacciones recientes, incluyendo mensajes que se borraron hace poco (minutos/horas).

2. Análisis del espacio libre (Free Space Carving)

Cuando se borra un mensaje de msgstore.db:

  1. El registro NO se elimina físicamente
  2. Solo se marca como “espacio libre” reutilizable
  3. Los datos permanecen hasta ser sobrescritos

Herramientas de recuperación:

  • SQLite Deleted Records Parser
  • Autopsy - módulo de SQLite carving
  • Magnet AXIOM - recuperación de registros borrados
  • Scripts Python con sqlite3 y análisis binario

3. Factores que afectan la recuperación

FactorProbabilidad de Éxito
Tiempo transcurrido< 24h: Alta / > 7 días: Baja
Uso del dispositivoPoco uso: Alta / Uso intenso: Baja
Número de mensajes nuevosPocos: Alta / Miles: Baja
Tipo de mensajeTexto: Alta / Multimedia: Media

4. Limitaciones

  • Mensajes muy antiguos: Probablemente sobrescritos
  • Multimedia grande: Referencias sobrescritas antes
  • iOS: Más difícil (cifrado de backup de Apple)

Cifrado y Seguridad de msgstore.db

Cifrado en reposo (desde 2021)

WhatsApp cifra msgstore.db con AES-256-GCM para proteger los datos si el dispositivo es robado.

Clave de cifrado:

  • Almacenada en /data/data/com.whatsapp/files/key
  • Derivada del hardware del dispositivo (Keystore de Android)
  • Cambió con cada versión: crypt12, crypt13, crypt14, crypt15

Implicación forense: Si solo tienes el archivo msgstore.db.crypt15 sin acceso al dispositivo original, no puedes descifrarlo sin la clave, que está ligada al hardware.

Cifrado en tránsito (E2E)

Los mensajes viajan cifrados de extremo a extremo (Signal Protocol), pero una vez recibidos, se descifran y almacenan en msgstore.db sin cifrado interno (solo cifrado del archivo).

Importante: El cifrado E2E protege el tránsito, pero no evita el análisis forense del dispositivo receptor.

Backups de msgstore.db

WhatsApp realiza backups automáticos diarios (configurable):

Android - Backup local:

/sdcard/WhatsApp/Databases/msgstore-YYYY-MM-DD.1.db.crypt15

Guarda los últimos 7 backups diarios.

Android - Backup en Google Drive:

  • Sube copia cifrada a Google Drive
  • Recuperable con cuenta de Google asociada
  • Útil para análisis forense si el dispositivo no está disponible

iOS - Backup en iCloud:

  • Integrado en backup de iCloud (cifrado)
  • Recuperable con credenciales de Apple ID
  • Requiere tools específicas de extracción de backup iOS

Peritaje Forense de msgstore.db

Proceso pericial completo:

1. Adquisición forense

  • Extracción del dispositivo con herramientas certificadas
  • Cálculo de hash SHA-256 del archivo original
  • Documentación de cadena de custodia

2. Descifrado (si aplica)

  • Extracción de la clave de cifrado del dispositivo
  • Descifrado de msgstore.db.crypt15 a .db
  • Verificación de integridad post-descifrado

3. Análisis de la base de datos

  • Apertura en software forense (Autopsy, Belkasoft, Oxygen)
  • Consultas SQL para extraer conversaciones relevantes
  • Análisis de metadatos (timestamps, estados, participantes)
  • Recuperación de mensajes eliminados del espacio libre

4. Exportación de evidencias

  • Transcripciones de conversaciones en formato legible
  • Extracción de multimedia con metadatos
  • Timeline cronológico de comunicaciones
  • Tablas con metadatos técnicos (IDs, fechas, estados)

5. Informe pericial

  • Metodología técnica detallada
  • Hash de integridad
  • Evidencias encontradas
  • Conclusiones sobre autenticidad e integridad
  • Anexos con capturas verificadas

Metadatos Forenses en msgstore.db

Información técnica relevante para peritaje:

MetadatoUtilidad Forense
timestampMomento exacto del envío/recepción
statusEnviado, entregado, leído (prueba de conocimiento)
key_from_meIdentifica quién envió el mensaje
_idID único para rastreo y verificación
media_hashHash del archivo multimedia (integridad)
receiptsConfirmaciones de lectura con timestamps
latitude/longitudeUbicación exacta si se compartió localización
group_participantsQuién estaba en el grupo y cuándo

Detección de manipulación:

Indicadores de que msgstore.db fue alterado:

  • Inconsistencias en IDs secuenciales
  • Timestamps fuera de orden lógico
  • Ausencia de registros en tablas relacionadas (messages sin chat correspondiente)
  • Hash del archivo no coincide con el original
  • Modificación de status sin registro en receipts

Herramientas para Análisis de msgstore.db

Gratuitas / Open Source:

  • DB Browser for SQLite: Interfaz gráfica para explorar SQLite
  • Autopsy + SQLite Plugin: Framework forense completo
  • WhatsApp Viewer (antiguo): Para versiones sin cifrar
  • SQLite Expert Personal: Análisis avanzado

Profesionales (Forenses):

  • Cellebrite Physical Analyzer: Extracción y análisis completo
  • Oxygen Forensic Detective: Suite forense de móviles
  • Magnet AXIOM: Recuperación avanzada de eliminados
  • Belkasoft Evidence Center: Análisis multi-fuente
  • MSAB XRY: Plataforma forense móvil

Scripts Python Custom:

Para análisis específicos, se pueden crear scripts Python con:

  • sqlite3 (librería estándar)
  • pandas (manipulación de datos)
  • matplotlib (visualizaciones de timeline)

Casos de Uso del Análisis de msgstore.db

1. Procedimientos penales

  • Amenazas: Certificar mensajes amenazantes con timestamps exactos
  • Estafas: Rastrear conversaciones de coordinación de fraude
  • Acoso: Documentar patrón reiterado con cronología precisa

2. Procedimientos civiles

  • Divorcios: Probar infidelidad o incumplimientos de custodia
  • Contratos: Demostrar acuerdos verbales documentados en WhatsApp
  • Laboral: Evidenciar despidos improcedentes o mobbing

3. Investigaciones corporativas

  • Fuga de información: Rastrear filtraciones vía WhatsApp corporativo
  • Competencia desleal: Captación ilegal de clientes
  • Fraudes internos: Coordinación de actividades fraudulentas

Preguntas Frecuentes sobre msgstore.db

¿Puedo acceder a msgstore.db sin root?

En versiones modernas de Android (desde Android 6+), necesitas root o herramientas forenses profesionales para acceder a /data/data/com.whatsapp/. Sin root, solo puedes trabajar con backups en almacenamiento externo o Google Drive.

Solo es legal si:

  • Tienes consentimiento del titular del dispositivo
  • Eres el propietario del dispositivo
  • Tienes orden judicial

Acceder sin consentimiento vulnera el art. 197 CP (descubrimiento y revelación de secretos).

¿Los mensajes se guardan para siempre en msgstore.db?

Sí, WhatsApp NO elimina automáticamente mensajes antiguos. Los mensajes permanecen hasta que:

  • El usuario los borra manualmente
  • Se reinstala WhatsApp sin restaurar backup
  • Se formatea el dispositivo

¿Qué pasa si WhatsApp se actualiza?

La estructura básica de msgstore.db es bastante estable, aunque pueden agregarse nuevas tablas/campos en actualizaciones. Las herramientas forenses profesionales se actualizan para soportar nuevas versiones.

¿msgstore.db contiene los archivos multimedia?

No, solo contiene referencias (rutas, URLs, hashes) a los archivos multimedia, que se almacenan en:

/sdcard/WhatsApp/Media/WhatsApp Images/
/sdcard/WhatsApp/Media/WhatsApp Audio/
/sdcard/WhatsApp/Media/WhatsApp Video/

Servicios Relacionados

Referencias Técnicas


Última actualización: Enero 2026

Nota técnica: La información sobre estructura de msgstore.db puede variar ligeramente entre versiones de WhatsApp. Este artículo refleja el estado en enero de 2026 con WhatsApp versión 2.24.x.

¿Necesitas un peritaje forense?

Si necesitas ayuda profesional con análisis forense digital, estoy aquí para ayudarte.

Solicitar Consulta Gratuita
Jonathan Izquierdo

Jonathan Izquierdo · Perito Forense

+15 años experiencia · AWS Certified

WhatsApp