
Verwalten Sie WhatsApp .crypt12-, .crypt14- und .crypt15-Dateien.

Entschlüsseln und verschlüsseln Sie .crypt12-, .crypt14- und .crypt15-Dateien von WhatsApp und WA Business mit Leichtigkeit!
Für die Entschlüsselung benötigen Sie die Schlüsseldatei oder den 64 Zeichen langen Schlüssel
(oder einen Screenshot davon).
Die Schlüsseldatei heißt "key", wenn das Backup crypt14 ist, oder
"encrypted_backup.key", wenn das Backup crypt15 ist (verschlüsselte E2E-Backups).
Wer eine vollständigere Suite für
WhatsApp-Forensik sucht, sollte sich whapa ansehen.
Wenn Sie keine Programme auf Ihrem Computer installieren möchten, können Sie dieses Programm in Google Colab ausführen.
Wenn Sie mit Jupyter vertraut sind (lesen Sie hier nach, falls nicht), können Sie die Notebook-Version des Programms verwenden.
Sie können dieses Skript als Paket über pip installieren. Führen Sie einfach aus:
python -m pip install wa-crypt-tools
für die stabile Version und
python -m pip install git+https://github.com/ElDavoo/wa-crypt-tools
für die Entwicklungsversion.
Möglicherweise müssen Sie eine virtuelle Umgebung erstellen, um Konflikte mit anderen Paketen zu vermeiden.
Wenn Sie lieber gar kein Terminal verwenden möchten, ist wagui ein kleines Fenster, das ein
Backup entschlüsselt: Wählen Sie Ihren Schlüssel, wählen Sie das Backup, drücken Sie auf Entschlüsseln.

Laden Sie es herunter und doppelklicken Sie darauf. Jede Version enthält einen eigenständigen Build, der weder Python noch eine Installation benötigt:
| Datei | Für |
|---|---|
wagui-windows-x64.exe | Windows |
wagui-macos-arm64.zip | macOS (Apple Silicon) |
wagui-linux-x64 | Linux (zuerst chmod +x ausführen) |
Der macOS-Build ist nicht codesigniert, daher wird macOS beim ersten Öffnen die Ausführung verweigern: Klicken Sie mit der rechten Maustaste auf die App und wählen Sie Öffnen, dann bestätigen Sie.
Wenn Sie das Paket bereits mit pip installiert haben, ist dasselbe Fenster nur einen Befehl entfernt:
wagui
Unter Linux benötigt eine pip-Installation zusätzlich das tkinter-Paket Ihrer Distribution (python3-tk unter
Debian/Ubuntu, python3-tkinter unter Fedora) -- es ist Teil von Python, wird aber separat gepackt.
Der herunterladbare Build enthält es bereits und benötigt nichts weiter.
Das Fenster deckt das Entschlüsseln ab, wofür die meisten hier sind. Es teilt Ihnen auch mit, um welche Art von
Datei es sich handelt, sobald Sie sie auswählen, so wie es wainfo tut. Verschlüsseln, Erstellen von Schlüsseldateien und
Erraten von Offsets bleiben in den unten aufgeführten Kommandozeilen-Tools.
usage: wadecrypt [-h] [-nm] [-bs BUFFER_SIZE] [-nd] [-v] [-f] [-y] [keyfile] [encrypted] [decrypted]
Um also eine crypt12/14/15 zu entschlüsseln, geben wir dem Programm die Schlüsseldatei, die verschlüsselte Datei und den Namen der Ausgabedatei.
Es wird keine Datei überschreiben, die bereits existiert; übergeben Sie -y/--yes, wenn Sie das möchten.
$ 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] [-y] [-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]
[-c [0-9]] [keyfile] [decrypted] [encrypted]
waencrypt wird keine Datei überschreiben, die bereits existiert; übergeben Sie -y/--yes, wenn Sie das möchten.
Mit --reference reproduziert waencrypt das referenzierte Backup Byte für Byte: der IV, der
Header (einschließlich Felder, die diese Bibliothek nicht modelliert) und die Komprimierungsstufe stammen alle
daraus, sodass das erneute Verschlüsseln einer unveränderten Datenbank Ihnen die md5 zurückgibt, mit der Sie begonnen haben.
-c/--compression-level ist die zlib-Stufe, standardmäßig 9, was WhatsApp derzeit verwendet.
Historisch wurde mit 1 komprimiert. Mit --reference wird die Stufe aus der Referenz übernommen, sodass
die Reproduktion eines älteren Backups nichts weiter erfordert; übergeben Sie -c, um sie zu überschreiben.
Die Verschlüsselung ist komplexer und ungetestet: Es wird empfohlen, eine andere verschlüsselte Datei vom selben Konto zu verwenden, die wir "Referenz" nennen.
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!
Sie müssen die folgenden Parameter angeben:
wa.db, stickers.db, der Rest von
WhatsApp/Backups/ -- trägt überhaupt keine Feature-Informationen, was wainfo mit
"No feature table found (not a msgstore DB or very old)" meint. Um einen Header dieser
Form zu schreiben, übergeben Sie --enable-features ohne etwas danach: Eine leere Liste schreibt weder die
Migrations-Flags noch die Backup-Version, und --max-feature bewirkt dann nichts.Standardwerte werden verwendet, wenn Parameter weggelassen werden, und sie stammen aus einem echten 2.26.34.7-
Backup: Mit dem richtigen --iv und --jid schreibt waencrypt dieselben Header-Bytes wie
das Telefon, ganz ohne Referenz. --reference zu übergeben ist trotzdem der bessere Weg, da es
den IV, die Komprimierungsstufe und den gesamten Header aus einem Backup übernimmt, das Sie bereits haben.
Zusammengefasst:
$ 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.34.7 --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!
Sie können Informationen über eine Backup-Datei mit dem Tool wainfo erhalten.