
Gestiona archivos .crypt12, .crypt14 y .crypt15 de WhatsApp.

¡Descifra y cifra archivos .crypt12, .crypt14 y .crypt15 de WhatsApp y WA Business con facilidad!
Para el descifrado, NECESITAS el archivo de clave o la clave de 64 caracteres.
El archivo de clave se llama "key" si la copia de seguridad es crypt14 o
"encrypted_backup.key" si la copia de seguridad es crypt15 (copias de seguridad E2E cifradas).
Si buscas un conjunto de herramientas más completo para
la informática forense de WhatsApp, echa un vistazo a whapa.
Si no quieres instalar programas en tu computadora, puedes ejecutar este programa en Google Colab .
Si estás familiarizado con Jupyter (lee aquí si no lo estás), puedes usar la versión notebook del programa.
Puedes instalar este script como un paquete mediante pip. Solo ejecuta:
python -m pip install wa-crypt-tools
para la versión estable y
python -m pip install git+https://github.com/ElDavoo/wa-crypt-tools
para la versión de desarrollo.
Puede que tengas que crear un entorno virtual para evitar conflictos con otros paquetes.
usage: wadecrypt [-h] [-nm] [-bs BUFFER_SIZE] [-nd] [-v] [-f] [keyfile] [encrypted] [decrypted]
Entonces, para descifrar un crypt12/14/15, le damos al programa el archivo de clave, el archivo cifrado y el nombre del archivo de salida.
$ wadecrypt encrypted_backup.key msgstore.db.crypt15 msgstore.db
key15.py:51 : [I] Crypt15 / Raw key loaded
wadecrypt.py:271 : [I] Done
usage: waencrypt [-h] [-f] [-v] [--enable-features [ENABLE_FEATURES ...]] [--max-feature MAX_FEATURE]
[--multi-file] [--type {12,14,15}] [--iv IV] [--reference REFERENCE] [--noparse]
[--wa-version WA_VERSION] [--jid JID] [--backup-version BACKUP_VERSION] [--no-compress]
[keyfile] [decrypted] [encrypted]
El cifrado es más complejo y no está probado: se recomienda usar otro archivo cifrado de la misma cuenta, al que llamaremos "referencia".
waencrypt --reference msgstore.db.crypt15 encrypted_backup.key msgstore.db msgstore-new.db.crypt15
waencrypt.py:57 : [W] This script is in beta stage
waencrypt.py:89 : [I] Done!
Debes proporcionar los siguientes parámetros:
Se usarán los valores predeterminados si se omiten los parámetros.
En resumen:
$ waencrypt --enable-features 5 6 7 8 9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 --type 15 --wa-version 2.26.1.2 --jid 00 --backup
-version 1 encrypted_backup.key msgstore.db msgstore-new.db.crypt15
waencrypt.py:57 : [W] This script is in beta stage
waencrypt.py:89 : [I] Done!
Puedes obtener información sobre un archivo de copia de seguridad con la herramienta wainfo.
Para ver el uso, ejecuta la herramienta con la opción -h.
wacreatekey - Crear archivos de clavewadecrypt - Descifrar copias de seguridadwaencrypt - Cifrar copias de seguridadwaguess - Forma hacky de intentar descifrar copias de seguridadwainfo - Obtener información sobre una copia de seguridad¡NO! ¿Qué sentido tendría cifrar un archivo si no?
Ver arriba.
Tus copias de seguridad están corruptas. Puedes intentar desactivar todas las comprobaciones con la
bandera -f, pero espera fallos y/o salida ilegible.
La clave es incorrecta. Puedes intentar desactivar todas las comprobaciones con la
bandera -f, pero espera fallos y/o salida ilegible.
wacreatekey para crear un archivo encrypted_backup.keywadecrypt para descifrar tus copias de seguridad.De esta manera, gestionarás tu propia clave raíz - de lo contrario, WhatsApp podría cambiar tu clave cuando lo considere oportuno.
¡No! La contraseña solo se usa para comunicarse con los servidores de WhatsApp y recuperar
la clave de 64 caracteres.
En otras palabras, la contraseña se usa para proteger la clave, no se usa
para cifrar las copias de seguridad.
Sí, pero el código no está documentado, así que por favor, por ahora lee el código.
Envíame los archivos necesarios por Telegram y le echaré un vistazo.
Si (comprensiblemente) tienes problemas de privacidad, abre un issue y adjunta:
Pero será más difícil ayudarte.
En un dispositivo Android rooteado, puedes copiar
/data/data/com.whatsapp/files/key
(o /data/data/com.whatsapp/files/encrypted_backup.key si las copias de seguridad son crypt15).
Si habilitaste las copias de seguridad E2E y no usaste una contraseña
(tienes una copia de la clave de 64 dígitos, por ejemplo una captura de pantalla),
puedes transcribirla y usarla en lugar del parámetro del archivo de clave.
Hay otras formas, pero no está dentro del alcance de este proyecto
decírtelas.
Los issues que pregunten sobre esto se cerrarán como inválidos.
No se escribió ningún artículo ni tesis sobre este software, pero puedes citar este repositorio en línea. Por favor, no digas "et al." ya que (por ahora) solo hay un autor.
Consulta el archivo CITATION.cff para obtener información sobre la cita.
@misc{wa-crypt-tools,
author = {ElDavoo},
title = {WhatsApp Crypt Tools},
year = {2022},
month = {06},
howpublished = {\url{https://github.com/ElDavoo/wa-crypt-tools}
}
@online{wa-crypt-tools,
author = {ElDavoo},
title = {WhatsApp Crypt Tools},
year = {2022},
month = {06},
url = {https://github.com/ElDavoo/wa-crypt-tools}
}
Estable:
2.24.16.76
Beta:
2.24.26.11
Estable:
2.24.23.78
Puedes instalar las dependencias opcionales de proto para usar protoletariat y corregir las importaciones de proto automáticamente.
Primero, después de clonar el repositorio, haz una instalación editable del paquete (posiblemente en un entorno virtual) con:
pip install -e .[proto]
Esto también instalará las dependencias opcionales del paquete.
A continuación, descarga el compilador de protobuf desde su repositorio aquí.
Puedes mover el programa protoc a la carpeta wa-crypt-tools/proto donde están los archivos .proto.
Reemplaza las clases de protobuf según sea necesario y ejecuta protoc para generar las clases de Python.
Desde el directorio wa-crypt-tools/proto del proyecto, ejecuta:
./protoc --python_out=../src/wa_crypt_tools/proto --proto_path=. *.proto
Después de generar las clases de Python de protobuf mediante protoc, desde ese mismo directorio ejecuta:
protol --in-place --python-out ..\src\wa_crypt_tools\proto protoc --proto-path=. *.proto
Linux:
PATH="$(pwd):$PATH" protol --in-place --python-out ../src/wa_crypt_tools/proto protoc --proto-path=. *.proto
Ahora todas las clases de Python generadas deberían tener sus importaciones corregidas.
¡Muchas gracias a cada uno de ustedes!
¡Y a cualquier otra persona que haya ayudado!