
Gérer les fichiers WhatsApp .crypt12, .crypt14 et .crypt15.

Déchiffrez et chiffrez facilement les fichiers .crypt12, .crypt14 et .crypt15 de WhatsApp et WA Business !
Pour le déchiffrement, vous AVEZ BESOIN du fichier de clé ou de la clé de 64 caractères.
Le fichier de clé est nommé "key" si la sauvegarde est crypt14 ou
"encrypted_backup.key" si la sauvegarde est crypt15 (sauvegardes E2E chiffrées).
Ceux qui recherchent une suite plus complète pour l'analyse forensique WhatsApp, consultez whapa.
Si vous ne souhaitez pas installer de programmes sur votre ordinateur, vous pouvez exécuter ce programme dans Google Colab .
Si vous connaissez Jupyter (lisez ici si ce n'est pas le cas), vous pouvez utiliser la version notebook du programme.
Vous pouvez installer ce script comme un paquet via pip. Exécutez simplement :
python -m pip install wa-crypt-tools
pour la version stable et
python -m pip install git+https://github.com/ElDavoo/wa-crypt-tools
pour la version de développement.
Vous devrez peut-être créer un environnement virtuel pour éviter les conflits avec d'autres paquets.
usage: wadecrypt [-h] [-nm] [-bs BUFFER_SIZE] [-nd] [-v] [-f] [keyfile] [encrypted] [decrypted]
Ainsi, pour déchiffrer un crypt12/14/15, on donne au programme le fichier de clé, le fichier chiffré et le nom du fichier de sortie.
$ 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]
Le chiffrement est plus complexe et non testé : il est conseillé d'utiliser un autre fichier chiffré du même compte, que nous appellerons "référence".
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!
Vous devez fournir les paramètres suivants :
Les valeurs par défaut seront utilisées si les paramètres sont omis.
Pour résumer :
$ 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!
Vous pouvez obtenir des informations sur un fichier de sauvegarde avec l'outil wainfo.
Pour l'utilisation, exécutez l'outil avec l'option -h.
wacreatekey - Créer des fichiers de cléwadecrypt - Déchiffrer les sauvegardeswaencrypt - Chiffrer les sauvegardeswaguess - Méthode bricolée pour essayer de déchiffrer les sauvegardeswainfo - Obtenir des informations sur une sauvegardeNON ! Quel serait l'intérêt de chiffrer un fichier sinon ?
Voir ci-dessus.
Vos sauvegardes sont corrompues. Vous pouvez essayer de désactiver toutes les vérifications avec l'option
-f, mais attendez-vous à des plantages et/ou à une sortie illisible.
La clé est incorrecte. Vous pouvez essayer de désactiver toutes les vérifications avec l'option
-f, mais attendez-vous à des plantages et/ou à une sortie illisible.
wacreatekey pour créer un fichier encrypted_backup.keywadecrypt pour déchiffrer vos sauvegardes.Ainsi, vous gérerez votre propre clé racine - sinon WhatsApp pourrait changer votre clé quand cela s'avère nécessaire.
Non ! Le mot de passe est uniquement utilisé pour communiquer avec les serveurs WhatsApp et récupérer la clé de 64 caractères.
En d'autres termes, le mot de passe est utilisé pour protéger la clé, il n'est pas utilisé
pour chiffrer les sauvegardes.
Oui, mais le code n'est pas documenté, donc veuillez pour le moment lire le code.
Envoyez-moi les fichiers nécessaires sur Telegram et j'y jetterai un œil.
Si vous avez (comme c'est compréhensible) des préoccupations concernant la vie privée, ouvrez une issue et joignez :
Mais il sera plus difficile de vous aider.
Sur un appareil Android rooté, vous pouvez simplement copier
/data/data/com.whatsapp/files/key
(ou /data/data/com.whatsapp/files/encrypted_backup.key si les sauvegardes sont crypt15).
Si vous avez activé les sauvegardes E2E et que vous n'avez pas utilisé de mot de passe
(vous avez une copie de la clé à 64 chiffres, par exemple une capture d'écran),
vous pouvez simplement la transcrire et l'utiliser à la place du paramètre de fichier de clé.
Il existe d'autres méthodes, mais il n'entre pas dans le cadre de ce projet de vous les indiquer.
Les issues demandant cela seront fermées comme invalides.
Aucun article ou thèse n'a été écrit à propos de ce logiciel, mais vous pouvez citer ce dépôt en ligne. Merci de ne pas dire "et al." car il n'y a (pour l'instant) qu'un seul auteur.
Consultez le fichier CITATION.cff pour les informations de citation.
@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}
}
Stable :
2.24.16.76
Bêta :
2.24.26.11
Stable :
2.24.23.78
Vous pouvez installer les dépendances optionnelles proto pour utiliser protoletariat et corriger automatiquement les imports proto.
D'abord, après avoir cloné le dépôt, effectuez une installation éditable du paquet (éventuellement dans un environnement virtuel) avec :
pip install -e .[proto]
Cela installera également les dépendances optionnelles du paquet.
Ensuite, téléchargez le compilateur protobuf depuis son dépôt ici.
Vous pouvez déplacer le programme protoc vers le dossier wa-crypt-tools/proto où se trouvent les fichiers .proto.
Remplacez les classes protobuf si nécessaire et exécutez protoc pour générer les classes Python.
Depuis le répertoire wa-crypt-tools/proto du projet, exécutez :
./protoc --python_out=../src/wa_crypt_tools/proto --proto_path=. *.proto
Après avoir généré les classes Python protobuf avec protoc, depuis ce même répertoire exécutez :
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
Maintenant, toutes les classes Python générées devraient avoir leurs imports corrigés.
Merci infiniment à chacun d'entre vous !
Tous les autres qui ont aidé !