· Jonathan Izquierdo · Análisis forense ·
Cómo Detectar Conversaciones de WhatsApp Falsas (Whatsfake, FakeChat) - Análisis Forense
Guía técnica completa para detectar conversaciones de WhatsApp falsificadas con Whatsfake, FakeChat y otras apps. Análisis forense de msgstore.db, metadatos y técnicas de verificación.

Calcula tu peritaje WhatsApp
Presupuesto orientativo en 2 minutos. Sin compromiso, datos confidenciales.
Estimar coste certificación WhatsApp →TL;DR - Resumen ejecutivo
En 60 segundos:
- Qué: Guía técnica para detectar conversaciones de WhatsApp falsificadas con apps como Whatsfake, FakeChat, WhatsMock y Yazzy, mediante análisis forense de la base de datos msgstore.db y metadatos.
- Por qué importa: falsificar una conversación y aportarla a un procedimiento puede constituir falsedad documental y, si se hace a sabiendas, estafa procesal. No hay estadística oficial de cuántas se presentan —ningún organismo lleva ese recuento—, pero basta con que ocurra en tu caso.
- Qué hacer: Solicitar peritaje forense cuando la autenticidad de una conversación de WhatsApp sea determinante en un procedimiento judicial; las capturas de pantalla por sí solas son impugnables (STS 300/2015).
- Cuándo actuar: Antes de presentar o impugnar conversaciones de WhatsApp como prueba, para garantizar que el análisis técnico respalda su autenticidad o demuestra su falsificación.
La proliferación de aplicaciones que permiten crear conversaciones falsas de WhatsApp —como Whatsfake, Fake Chat, WhatsMock y Yazzy— ha convertido la detección de manipulaciones en una competencia central del peritaje informático forense. Son aplicaciones de uso trivial: cualquiera produce en dos minutos una captura indistinguible a simple vista de una conversación real, con el nombre, la foto de perfil, la hora y las marcas de entrega que quiera. La otra cara de este trabajo es certificar conversaciones de WhatsApp auténticas para que resistan cualquier impugnación.
No hay estadística oficial de cuántas conversaciones falsificadas se presentan como prueba: la AEPD no tiene competencia sobre eso —su ámbito es la protección de datos, no la falsedad probatoria— y los tribunales no llevan un recuento de pruebas impugnadas por manipulación. Lo que sí está documentado es que aportar una conversación falsificada a un procedimiento puede constituir falsedad documental y, si se hace a sabiendas, estafa procesal, y que la única forma de acreditar la manipulación es el análisis técnico del soporte, no la lectura de la captura. Evita injusticias basadas en evidencias fraudulentas.
Jurisprudencia Crítica
La STS 300/2015, de 19 de mayo, estableció que las conversaciones de mensajería pueden ser impugnadas por su facilidad de manipulación, y que la impugnación fundada obliga a acreditar autenticidad e integridad por otros medios. La STS 754/2015, de 27 de noviembre, precisó cuáles son esas salidas: la pericial, el reconocimiento del acusado o la testifical de quien pueda declarar sobre la remisión. Fabricar una conversación y aportarla a un procedimiento se sitúa en los arts. 395 y 396 del Código Penal —documento privado y su presentación en juicio— y puede alcanzar la estafa procesal del art. 250.1.7.º; el detalle está más abajo.
¿Qué es Whatsfake y Cómo Funciona?
Whatsfake es la aplicación más popular para crear conversaciones de WhatsApp completamente falsas. Disponible en Google Play (aunque con advertencias), permite:
| Función | Descripción | Detección Forense |
|---|---|---|
| Crear chats falsos | Generar conversaciones completas desde cero | ❌ No existe en msgstore.db |
| Modificar nombres | Cambiar nombre del contacto y número | ✅ Inconsistencia con base de datos |
| Personalizar fechas | Establecer cualquier timestamp | ✅ Timestamps imposibles |
| Añadir fotos de perfil | Usar cualquier imagen | ⚠️ Difícil detectar visualmente |
| Simular estados | ”Escribiendo…”, “En línea”, marcas de entrega | ✅ No hay confirmación de servidor |
| Generar capturas | Exportar como imagen realista | ❌ Sin metadatos EXIF originales |
Otras Herramientas de Falsificación
Fake Chat:
- Interfaz más simple que Whatsfake
- Permite crear chats de WhatsApp, Telegram, Instagram
- Exporta imágenes PNG sin metadatos verificables
WhatsMock:
- Especializada en conversaciones grupales
- Simula administradores, miembros y roles
- Genera timestamps secuenciales convincentes
Yazzy (WhatsFake Pro):
- Versión premium con más funciones
- Simula llamadas perdidas y videollamadas
- Permite crear backups falsos (.crypt)
Por qué se detectan con relativa facilidad
Estas aplicaciones imitan la interfaz, no el sistema. Reproducen fielmente lo que se ve —burbujas, marcas de entrega, hora, foto de perfil— y no generan nada de lo que hay debajo: ni la fila en la base de datos, ni el identificador interno del mensaje, ni el acuse del servidor, ni los metadatos que una captura de pantalla real lleva consigo. Quien las usa suele desconocer que esa segunda capa existe, y es exactamente donde mira el peritaje.
Indicadores Técnicos de Manipulación
1. Análisis de la Base de Datos msgstore.db
La comprobación que más pesa: con acceso al dispositivo original, el cotejo contra la base de datos SQLite es la vía más directa. Antes de las consultas, dos avisos de esquema que ahorran una tarde: las versiones modernas de WhatsApp sustituyeron la tabla messages por message, con los destinatarios en jid y chat, así que las consultas de abajo corresponden al esquema heredado y hay que adaptarlas; y se trabaja siempre sobre una copia con su hash, nunca sobre el fichero extraído.
-- Consulta para verificar existencia de conversación
SELECT
_id,
key_remote_jid,
data,
timestamp,
status,
message_type
FROM messages
WHERE key_remote_jid = '34600123456@s.whatsapp.net'
AND timestamp BETWEEN 1704067200000 AND 1706745600000
ORDER BY timestamp ASC;
-- Resultado vacío = conversación NO existe en el dispositivo
-- Resultado con datos = verificar timestamps y contenidoSi la conversación NO aparece en msgstore.db pero existe una captura, el hallazgo es fuerte, y conviene enunciarlo con precisión porque de eso depende que resista la contradicción. Lo que queda acreditado es que esa conversación no consta en la base de datos de ese dispositivo en el momento de la extracción. Antes de concluir falsificación hay que descartar, y dejar constancia de ello en el informe, las alternativas que producen el mismo resultado:
- El chat se eliminó del dispositivo antes de la extracción.
- El terminal se restauró de fábrica o se restauró desde una copia anterior a la conversación.
- La conversación existió en otro dispositivo o en otra cuenta.
- Se aportó un
msgstore.dbque no procede del terminal que se dice.
Cuando la ausencia se acompaña de otros indicadores —metadatos de la imagen que delatan la aplicación generadora, marcas de tiempo imposibles, estados de entrega incoherentes—, el conjunto sí sostiene la conclusión. Un solo indicador, no.
2. Verificación de Timestamps
Los mensajes de WhatsApp tienen timestamps en formato epoch Unix (milisegundos):
#!/usr/bin/env python3
"""
Script para verificar consistencia de timestamps en WhatsApp
Autor: Jonathan Izquierdo - Perito Informático Forense
"""
import datetime
def verificar_timestamp_whatsapp(timestamp_ms):
"""
Verifica si un timestamp de WhatsApp es técnicamente posible
Args:
timestamp_ms: Timestamp en milisegundos (epoch Unix)
Returns:
dict con análisis de validez
"""
# WhatsApp se lanzó oficialmente en 2009
WHATSAPP_LAUNCH = 1230768000000 # 1 enero 2009
# Timestamp actual
NOW = int(datetime.datetime.now().timestamp() * 1000)
results = {
'timestamp': timestamp_ms,
'es_valido': True,
'fecha_humana': None,
'anomalias': []
}
try:
# Convertir a fecha legible
fecha = datetime.datetime.fromtimestamp(timestamp_ms / 1000)
results['fecha_humana'] = fecha.strftime('%Y-%m-%d %H:%M:%S')
# Verificar si es anterior al lanzamiento de WhatsApp
if timestamp_ms < WHATSAPP_LAUNCH:
results['es_valido'] = False
results['anomalias'].append(
f"Timestamp anterior al lanzamiento de WhatsApp ({fecha.year})"
)
# Verificar si es fecha futura
if timestamp_ms > NOW:
results['es_valido'] = False
results['anomalias'].append(
f"Timestamp en el futuro (ahora: {datetime.datetime.now().strftime('%Y-%m-%d')})"
)
# Verificar secuencia lógica (mensajes en orden cronológico)
# Esto requeriría una lista de timestamps, se implementa en análisis completo
except (ValueError, OSError) as e:
results['es_valido'] = False
results['anomalias'].append(f"Timestamp inválido: {e}")
return results
# Ejemplo de uso en análisis forense
# El segundo caso ilustra por qué la comprobación se hace contra la fecha del análisis
# y no contra una constante: un timestamp «del futuro» deja de serlo con el tiempo.
timestamps_sospechosos = [
1104537600000, # 2005 — anterior a la existencia de WhatsApp
4102444800000, # 2100 — futuro en cualquier análisis razonable
1672531200000, # 2023 — potencialmente válido, hay que mirar el resto del hilo
]
for ts in timestamps_sospechosos:
resultado = verificar_timestamp_whatsapp(ts)
print(f"\n📅 Timestamp: {ts}")
print(f" Válido: {resultado['es_valido']}")
print(f" Fecha: {resultado['fecha_humana']}")
if resultado['anomalias']:
print(f" ⚠️ Anomalías: {', '.join(resultado['anomalias'])}")Indicadores de falsificación en timestamps:
| Anomalía | Significado | Ejemplo |
|---|---|---|
| Timestamps no secuenciales | Mensajes desordenados temporalmente | Respuesta enviada antes de la pregunta |
| Marcas de tiempo idénticas | Varios mensajes en el mismo milisegundo | Improbable en mensajes escritos a mano, habitual al generarlos de golpe |
| Fechas imposibles | Anterior a 2009 o posterior a hoy | Mensaje de 2008 en WhatsApp |
| Gaps temporales ilógicos | Conversación sin actividad durante años | Chat “activo” con gap de 3 años |
3. Análisis de Metadatos de Imagen
Cuando la “prueba” es una captura de pantalla (no extracción forense):
# Extraer metadatos EXIF de la imagen
exiftool captura_whatsapp.jpg
# Buscar inconsistencias:
# - Software: "Whatsfake", "Fake Chat", "Paint", "Photoshop"
# - Fecha de creación posterior a las fechas de los mensajes
# - Resolución atípica (no coincide con smartphones conocidos)
# - Ausencia total de metadatos (limpiados intencionalmente)Ejemplo de salida sospechosa:
File Name : whatsapp_prueba.jpg
File Modification Date/Time : 2026:01:15 18:23:45
Software : Whatsfake 2.8.1
Image Size : 720x1280
Device Make : (not set)
Device Model : (not set)🚩 Red Flags:
- Software: “Whatsfake” = confirmación inmediata de falsificación
- Ausencia de “Device Make/Model” = captura editada, no screenshot original
- Fecha de modificación posterior a las fechas de los mensajes del chat
4. Verificación de Número de Teléfono
WhatsApp usa formato internacional estricto:
import re
# Prefijos ordenados de más largo a más corto al comparar: «34» debe probarse antes
# que «3», o un número español se atribuye a otro país. Ése es el fallo clásico de
# este tipo de comprobación, y hace que un JID legítimo se marque como inválido.
PREFIJOS = {
'34': ('España', 9), '351': ('Portugal', 9), '33': ('Francia', 9),
'44': ('Reino Unido', 10), '49': ('Alemania', None), '39': ('Italia', None),
'1': ('EE. UU./Canadá', 10), '52': ('México', 10), '54': ('Argentina', None),
'57': ('Colombia', 10), '56': ('Chile', 9), '51': ('Perú', 9),
}
def verificar_jid_whatsapp(jid):
"""
Comprueba si un identificador de WhatsApp tiene forma plausible.
WhatsApp usa [prefijo de país][número nacional]@s.whatsapp.net, solo dígitos:
ni signo «+», ni espacios, ni guiones.
Devuelve valido=True, False o None. **None importa**: significa que el prefijo
no está en esta tabla, no que el número sea falso. Un verificador que devuelve
«inválido» ante lo que no sabe tratar produce falsos positivos contra evidencia
auténtica, que es el peor resultado posible en un peritaje.
"""
m = re.match(r'^(\d{7,15})@s\.whatsapp\.net$', jid)
if not m:
return {'valido': False,
'razon': 'No es un JID de WhatsApp: se esperan solo dígitos, sin signos ni espacios'}
numero = m.group(1)
for pref in sorted(PREFIJOS, key=len, reverse=True):
if numero.startswith(pref):
pais, largo = PREFIJOS[pref]
local = numero[len(pref):]
if largo and len(local) != largo:
return {'valido': False,
'razon': f'{pais}: se esperan {largo} dígitos tras el prefijo +{pref}, hay {len(local)}'}
return {'valido': True, 'pais': pais, 'prefijo': pref, 'numero_local': local}
return {'valido': None,
'razon': f'Prefijo no reconocido ({numero[:3]}…): comprobar contra el plan de numeración del país'}
# Casos de prueba, con el resultado que debe dar cada uno
CASOS = [
('34612345678@s.whatsapp.net', True, 'España, 9 dígitos'),
('3461234567@s.whatsapp.net', False, 'España con 8 dígitos'),
('34-612-345-678@s.whatsapp.net', False, 'guiones: no aparecen en el JID'),
('999888777666@s.whatsapp.net', None, 'prefijo no reconocido, no «falso»'),
('351912345678@s.whatsapp.net', True, 'Portugal: el prefijo largo gana al corto'),
]
for jid, esperado, nota in CASOS:
r = verificar_jid_whatsapp(jid)
print(f"{'OK ' if r['valido'] is esperado else 'MAL'} {jid:32s} valido={r['valido']} {nota}")El resultado None no es un tecnicismo. Un comprobador que devuelve «inválido» ante un prefijo que no conoce acaba señalando como falsa una conversación auténtica, y eso en un informe pericial es mucho peor que no haber comprobado nada. La regla es la misma que rige toda esta guía: una herramienta falla en seco ante lo que no sabe tratar, y lo dice.
Whatsfake permite números completamente inventados que no cumplen con el formato de WhatsApp.
5. Estados de Entrega y Lectura
WhatsApp usa un sistema específico de estados:
| Icono | Estado | Valor BD | Verificación |
|---|---|---|---|
| ⏱️ | Enviando | 0 | Transitorio, no persiste |
| ✓ | Enviado (1 tick) | 1 | Confirmado por servidor |
| ✓✓ | Entregado (2 ticks) | 2 | Confirmado recepción |
| ✓✓ | Leído (2 ticks azules) | 3 | Confirmado lectura |
Inconsistencias en Whatsfake:
-- Consulta forense para verificar estados
SELECT
_id,
data AS mensaje,
status,
timestamp,
receipt_server_timestamp,
receipt_device_timestamp
FROM messages
WHERE key_remote_jid = '34612345678@s.whatsapp.net'
ORDER BY timestamp DESC
LIMIT 10;🚩 Red Flags:
- status = 3 (leído) pero receipt_device_timestamp = NULL = imposible
- Mensajes con status = 2 (entregado) sin receipt_server_timestamp = falso
- Todos los mensajes con status idéntico = patrón antinatural
Cómo se acumulan los indicadores
Ningún indicador aislado cierra la cuestión; lo que la cierra es que varios apunten a lo mismo y ninguno apunte en contra. Una conversación fabricada suele reunir tres a la vez:
- La base de datos del dispositivo no registra ningún mensaje en el rango de fechas de la captura.
- Los metadatos de la imagen no corresponden a una captura de pantalla del terminal: falta el fabricante y el modelo, y a veces aparece el nombre de la aplicación generadora en el campo
Software. - Los estados de entrega son incoherentes: mensajes marcados como leídos sin la marca temporal correspondiente, o todos con el mismo estado.
Con los tres, la conclusión se sostiene. Con uno solo, hay que decir en el informe que no.
Técnicas Avanzadas de Detección Forense
Análisis de Write-Ahead Logging (WAL)
WhatsApp usa SQLite con modo WAL para optimizar rendimiento:
# El WAL no se abre por separado: se abre la base y SQLite lo aplica.
# Para inspeccionarlo hay que impedir que se consolide al abrirla.
sqlite3 msgstore.db 'PRAGMA journal_mode;' # confirmar que está en WAL
ls -l msgstore.db msgstore.db-wal msgstore.db-shm
# El WAL guarda las transacciones aún no consolidadas: puede contener
# la versión previa de filas modificadas justo antes de la extracción.Conviene no prometer de más aquí. Una edición hecha a través de SQLite deja un WAL perfectamente válido, con sus sumas de comprobación correctas: no hay una señal de «esto se manipuló» que salte sola. Lo que sí puede observarse, y hay que buscar expresamente:
- Saltos en los identificadores
_idde la tabla de mensajes, que son secuenciales. - Registros huérfanos en el espacio no asignado y en las páginas liberadas, que pueden conservar la versión anterior de una fila modificada.
- Incoherencias entre tablas: un mensaje sin su fila correspondiente en las de recibos o de chat.
- La fecha del sistema de ficheros del
.db, el.db-waly el.db-shm, comparada con la del mensaje más reciente que la base declara.
Copias de seguridad cifradas: qué se puede comprobar y qué no
Las copias de WhatsApp en la nube se cifran con AES-256 en modo GCM, y los ficheros .crypt14 y .crypt15 no empiezan por una cadena de texto legible: llevan una cabecera serializada en Protocol Buffers con los parámetros del cifrado. Circula código que comprueba si el fichero empieza por b'WhatsApp Backup' y concluye «posible falsificación» si no lo hace: eso marca como falsa toda copia auténtica, que es el error más caro que puede cometer un comprobador en un peritaje.
Lo que sí se puede afirmar, y basta para lo que interesa aquí:
- Sin la clave no hay descifrado, y la clave no está en el fichero. En
.crypt15deriva de la clave de extremo a extremo de la cuenta, y en.crypt14reside en el propio dispositivo (/data/data/com.whatsapp/files/key). Una aplicación de conversaciones falsas no tiene acceso a ninguna de las dos, así que no puede producir una copia que WhatsApp restaure. - Por eso la prueba pertinente no es inspeccionar la cabecera, es intentar la restauración o el descifrado con la clave del titular: si la copia es auténtica, la base de datos resultante se abre y sus mensajes se corresponden con lo aportado; si no lo es, el descifrado falla sin ambigüedad.
- Y la ausencia de copia no prueba nada. Muchos usuarios la tienen desactivada.
Análisis de Patrones de Conversación
Machine Learning para detectar anomalías:
from collections import Counter
import statistics
def analizar_patron_conversacion(mensajes):
"""
Detecta patrones antinaturales que sugieren falsificación
Args:
mensajes: Lista de dicts con {timestamp, texto, autor}
"""
# Calcular intervalos entre mensajes
intervalos = []
for i in range(1, len(mensajes)):
intervalo = mensajes[i]['timestamp'] - mensajes[i-1]['timestamp']
intervalos.append(intervalo / 1000) # Convertir a segundos
# Estadísticas de intervalos
media_intervalo = statistics.mean(intervalos) if intervalos else 0
desv_estandar = statistics.stdev(intervalos) if len(intervalos) > 1 else 0
anomalias = []
# Detectar intervalos sospechosamente uniformes
if desv_estandar < 1 and len(intervalos) > 10:
anomalias.append(
"Intervalos demasiado uniformes - patrón antinatural (posible script)"
)
# Detectar respuestas instantáneas imposibles
respuestas_instantaneas = sum(1 for i in intervalos if i < 0.5)
if respuestas_instantaneas / len(intervalos) > 0.5:
anomalias.append(
f"{respuestas_instantaneas} respuestas en <0.5 segundos - humanamente imposible"
)
# Verificar alternancia perfecta (típico de Whatsfake)
autores = [m['autor'] for m in mensajes]
alternancia_perfecta = all(
autores[i] != autores[i+1] for i in range(len(autores)-1)
)
if alternancia_perfecta and len(autores) > 15:
anomalias.append(
"Alternancia perfecta entre autores - patrón antinatural"
)
return {
'media_intervalo_seg': media_intervalo,
'desviacion_estandar': desv_estandar,
'anomalias': anomalias,
'nivel_sospecha': 'ALTO' if len(anomalias) > 2 else 'MEDIO' if anomalias else 'BAJO'
}Proceso de Verificación Pericial Completa
Solicitud de Dispositivo Original
Solicitar el terminal donde se dice que se generó la conversación. Que no se aporte no acredita nada por sí mismo —puede haberse perdido, roto o cambiado—, pero sí limita lo que el informe podrá concluir, y eso se hace constar.
Extracción Forense Certificada
Usar Cellebrite UFED, Oxygen Forensic o MOBILedit para extraer msgstore.db con cadena de custodia.
Cálculo de Hash SHA-256
sha256sum msgstore.db > msgstore.db.sha256Documentar integridad de la base de datos extraída.
Análisis SQL de los mensajes
Buscar la conversación en la base de datos. Su ausencia es un indicador de peso, pero no una conclusión por sí sola: hay que descartar borrado, restauración desde copia anterior y origen en otro dispositivo, y dejarlo escrito.
Verificación de Timestamps
Ejecutar scripts de verificación de coherencia temporal.
Análisis de Metadatos de Imágenes
Si solo hay capturas, extraer y analizar metadatos EXIF.
Comparación con Backups
Si existen backups previos (Google Drive/iCloud), verificar consistencia.
Informe pericial detallado
Documentar cada hallazgo con la evidencia que lo sostiene, y también lo que no ha podido comprobarse. Un informe que solo enumera certezas es más fácil de desmontar que uno que declara sus límites.
Marco legal: los tres preceptos que encajan, y por qué
Una conversación de WhatsApp fabricada es un documento privado, y eso determina qué artículos se aplican. La secuencia completa es ésta:
- Art. 395 CP — fabricarla. «El que, para perjudicar a otro, cometiere en documento privado alguna de las falsedades previstas en los tres primeros números del apartado 1 del artículo 390, será castigado con la pena de prisión de seis meses a dos años». La finalidad de perjudicar es elemento del tipo: sin ella, no hay delito.
- Art. 396 CP — aportarla al procedimiento. «El que, a sabiendas de su falsedad, presentare en juicio o, para perjudicar a otro, hiciere uso de un documento falso de los comprendidos en el artículo anterior, incurrirá en la pena inferior en grado a la señalada a los falsificadores». Es el precepto que describe exactamente la conducta de la que trata este artículo, y el que suele omitirse.
- Art. 250.1.7.º CP — la estafa procesal. «Incurren en la misma los que, en un procedimiento judicial de cualquier clase, manipularen las pruebas en que pretendieran fundar sus alegaciones o emplearen otro fraude procesal análogo, provocando error en el juez o tribunal y llevándole a dictar una resolución que perjudique los intereses económicos de la otra parte».
Dos precisiones que evitan citar mal. El art. 390 castiga la falsedad cometida por autoridad o funcionario público, y el 392 se refiere a documento público, oficial o mercantil: ninguno de los dos es el aplicable a un particular que fábrica un chat. Y la calificación final depende del uso concreto y del perjuicio causado, que corresponde valorar al tribunal, no al perito.
Herramientas Forenses Profesionales
| Herramienta | Función | Coste |
|---|---|---|
| Cellebrite UFED | Extracción completa + análisis WhatsApp | ~15.000€/año |
| Oxygen Forensic | Análisis msgstore.db, recuperación borrados | ~5.000€/año |
| DB Browser SQLite | Inspección manual de bases de datos | Gratis (Open Source) |
| ExifTool | Análisis de metadatos de imágenes | Gratis (Open Source) |
| WhatsApp Viewer | Visualización de msgstore.db | Gratis |
| Python + sqlite3 | Scripts personalizados de análisis | Gratis |
Tres formas en que una falsificación se delata
Escenarios ilustrativos
Los tres supuestos que siguen son escenarios construidos sobre tipologías reales de la práctica pericial: explican qué se busca y por qué funciona, no relatan procedimientos concretos. Ninguno afirma un desenlace judicial, porque eso depende de la valoración conjunta de toda la prueba y no del análisis técnico.
1. El silencio de la base de datos
La captura muestra una conversación con un número determinado. Se extrae el terminal y se busca ese número:
-- Esquema heredado. En versiones recientes la tabla es «message»,
-- con los destinatarios en «jid» y «chat».
SELECT COUNT(*) FROM messages
WHERE key_remote_jid = '34666111222@s.whatsapp.net';
-- Y una segunda comprobación que suele olvidarse: si nunca fue contacto,
-- tampoco constará en la agenda de la aplicación.
SELECT COUNT(*) FROM wa_contacts
WHERE jid = '34666111222@s.whatsapp.net';Dos ceros son un indicador fuerte. Lo que convierte ese indicador en conclusión es haber descartado por escrito el borrado, la restauración desde copia anterior y el origen en otro dispositivo.
2. La fecha que no existe
Es el hallazgo más barato de todos y no requiere ni acceso al terminal: basta con leer la captura. Una conversación fechada el 29 de febrero de un año no bisiesto no puede haber ocurrido, y las aplicaciones generadoras permiten teclear cualquier fecha sin validarla. La misma familia incluye mensajes anteriores a la existencia de la aplicación, respuestas que preceden a la pregunta que contestan, y saltos temporales que no encajan con el hilo.
3. El identificador que WhatsApp no usaría
En la base de datos, el destinatario aparece como [dígitos]@s.whatsapp.net, sin signo «+», sin espacios y sin guiones. Una captura que muestre el número con separadores donde debería ir el identificador interno delata que no procede de la aplicación. Y si el número tiene una longitud que no encaja con el plan de numeración de su país —nueve dígitos tras el prefijo, en España—, el indicio se refuerza.
Recomendaciones para Abogados
Si tu cliente presenta conversaciones de WhatsApp como prueba:
✅ HACER:
- Solicitar peritaje informático preventivo ANTES de presentar en juicio
- Entregar el dispositivo original al perito para extracción forense
- Preservar el smartphone sin realizar resets ni actualizaciones
- Documentar cadena de custodia desde el inicio
❌ NO HACER:
- Presentar solo capturas de pantalla sin respaldo pericial
- Asumir que las capturas serán aceptadas sin cuestionamiento
- Permitir que el cliente “limpie” el móvil antes del peritaje
- Confiar en la autenticidad sin verificación técnica
Conclusión
La detección de conversaciones de WhatsApp falsificadas requiere conocimientos técnicos especializados y acceso a herramientas forenses profesionales. Whatsfake y aplicaciones similares son fáciles de usar pero también fáciles de detectar para un perito cualificado.
Con acceso al dispositivo, el cotejo contra la base de datos es la vía más directa: o el mensaje está registrado con sus metadatos, o no está. Pero el resultado no se promete antes de ver el material, y la ausencia de un mensaje admite explicaciones distintas de la falsificación, que hay que descartar una a una y dejar por escrito. Lo que sí puede afirmarse sin matices es lo contrario: una captura de pantalla, por sí sola, no acredita nada, y cuando la autenticidad se discute con fundamento, la extracción del dispositivo original es lo único que permite sostenerla.
Si necesitas verificar la autenticidad de conversaciones de WhatsApp para un procedimiento judicial, puedo realizar un análisis forense completo con informe pericial que certifique si los mensajes son genuinos o han sido manipulados. La detección temprana de falsificaciones evita procedimientos judiciales basados en pruebas fraudulentas y protege tus derechos legales.
Contacta para consulta gratuita sobre tu caso específico.
Última actualización: 28 de agosto de 2026 Categoría: Análisis forense Etiquetas: WhatsApp forense, Whatsfake, FakeChat, detección manipulación, peritaje informático
¿Necesitas que una conversación aguante en un juicio?
Una captura se impugna en cuanto la otra parte quiere. La certificación forense preserva el mensaje con su origen, sus metadatos y su cadena de custodia documentada.
Referencias y fuentes
- STS 300/2015, de 19 de mayo (Sala de lo Penal) — ROJ: STS 2047/2015 · ECLI:ES:TS:2015:2047. Las conversaciones de mensajería pueden ser impugnadas por su facilidad de manipulación.
- STS 754/2015, de 27 de noviembre (Sala de lo Penal) — ROJ STS 5421/2015 · ECLI:ES:TS:2015:5421. Cuestionada la autenticidad, la acreditan la pericial, el reconocimiento del acusado o la testifical de la remisión; en aquel pleito no hubo pericial y la condena se confirmó por la admisión del propio acusado. Se localiza por su ROJ o su ECLI en el buscador del CENDOJ.
- Código Penal, art. 395 — falsedad en documento privado cometida para perjudicar a otro. BOE
- Código Penal, art. 396 — presentación en juicio, a sabiendas, de un documento privado falso; pena inferior en grado. BOE
- Código Penal, art. 250.1.7.º — estafa procesal por manipulación de las pruebas en un procedimiento judicial. BOE
Autor: Jonathan Izquierdo, Perito Informático Forense en Jaén Servicios relacionados: Perito WhatsApp | Análisis Forense Digital





