Hinweis: Dieser Artikel ist vom August 2014. WhatsApp hat die Nachrichtenformate geändert, und nicht alle Tools in diesem Artikel kommen mit dem neuen Formaten zurecht. Außerdem liegen die Keys nicht mehr an der gleichen Stelle. Der Artikel ist also leider veraltet.
Durch laufende Abstürze eines Galaxy S2 Plus verlor WhatsApp alle Nachrichten. Die Folge: Ein altes Backup, sowie ab diesem Zeitpunkt mehrere neue Backups, welche die alten Nachrichten wiederum nicht enthielten. Die Benutzerin war sehr sauer, auf die schnelle war da auch nichts zu machen.

Der Artikel zeigt dazu kurz auf, welche Backup-Schritte durchgeführt wurden, und welche Möglichkeiten zur Restauration von mehreren alten WhatsApp-Chats es gibt.
Artikelstruktur
Schritt 1: Dateien sichern
Der erste Schritt war es, alte WhatsApp-Chats zu sichern. Die Bilder waren dank Dropbox-Upload soweit alle sicher, die heruntergeladenen an einem Windows-PC per MTP mit mäßiger Geschwindigkeit auch gesichert. Die externe SD-Karte ließ sich schnell in einen Adapter stecken und ebenfalls sichern.
Zu meiner Verwunderung gab es einen WhatsApp-Ordner auf der internen und externen SD-Karte. Im Endeffekte habe ich also folgende Verzeichnisse gesichert:
1 2 | /storage/sdcard/WhatsApp/ /storage/extSdcard/WhatsApp/ |
Die dort enthaltenen .crypt-Dateien mit Datumsstempel (Unterordner: Databases) sind später noch sehr wichtig. Diese enthalten die gesuchten Nachrichten. Zusätzlich sichert man aber auch die msgstore.db.crypt (also die Datei ohne Datumsstempel). Falls in beiden Ordnern diese Dateien vorhanden sein sollten, fügt ihr im Namen einfach einen Zähler ein, also etwa msgstore-2013-05-15.2.db .
Schritt 2: WhatsApp-Datenbanken zusammenführen
Nun aber zum eigentlichen Schritt. Die gesicherten WhatsApp-Datenbanken möchten ja noch zusammengeführt werden. Da WhatsApp hier nichts anbietet und ausnahmsweise mal etwas nicht in der Cloud speichert (nur die Telefonnummern eurer Kontakte, na danke…), brauchen wir andere Tools.
Vorraussetzungen zum Mergen
Wir müssen uns eine Toolsuite zusammenstellen. Am einfachsten ist das unter Linux oder MacOS, da Python im Pfad liegt. Windows-Abenteurer können sich mit ellenlangen Befehlszeilenketten oder modifizierten PATH-Variablen anfreunden. 😈 Prinzipiell ist der Weg aber der Gleiche.
Folgende Tools werden installiert bzw. entspackt:
- Python
sudo apt-get install python - WhatsApp xtrract
Zip gibt es hier bei XDA <– klick - WhatsApp Forensic Tools
Quelle: GitHub
Dateien jeweils anklicken, auf „raw“ klicken und dann die angezeigt Datei einfach mit Strg+S in das WhatsApp xtract-Verzeichnis speichern.
Datenbanken decrypten
Zunächst legt man alle Datenbanken von WhatsApp in ein Verzeichnis. Dieses heißt üblicherweise Databases. Da ich von mehreren Verzeichnissen die .db.crypt -Dateien zusammenkopiert habe, nutze ich ein Verzeichnis mit dem Namen unmerged – das ist aber nebensächlich.
Im folgenden ersten Schritt werden die Dateien entschlüsselt, um später zusammengeführt werden zu können.
1 2 3 4 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 38 39 40 41 42 43 44 45 46 47 48 49 50 | (bmarwell@aeon)[~/Desktop/whatsapxtract/wa_extr] $ python encryption.py --decrypt --dir ./unmerged/ --output-dir ./decrypted/ ####################################### # WhatsApp Encryption Tool 0.4 # #-------------------------------------# # Decrypts encrypted msgstore files # # This tool is part of WForensic # # https://sch3m4.github.com/wforensic # ####################################### [i] Setting AES key....... OK [+] Decrypting msgstore-2013-05-15.1.db.crypt (msgstore-2013-05-15.1.db) -> 23617552 Bytes + 65490 Messages from 85 contacts [+] Decrypting msgstore-2013-05-16.1.db.crypt (msgstore-2013-05-16.1.db) -> 23702544 Bytes + 65673 Messages from 85 contacts [+] Decrypting msgstore-2013-05-17.1.db.crypt (msgstore-2013-05-17.1.db) -> 23726096 Bytes + 65754 Messages from 85 contacts [+] Decrypting msgstore-2013-05-18.1.db.crypt (msgstore-2013-05-18.1.db) -> 23757840 Bytes + 65869 Messages from 86 contacts [+] Decrypting msgstore-2013-05-19.1.db.crypt (msgstore-2013-05-19.1.db) -> 23831568 Bytes + 66023 Messages from 86 contacts [+] Decrypting msgstore-2013-05-20.1.db.crypt (msgstore-2013-05-20.1.db) -> 23869456 Bytes + 66129 Messages from 86 contacts [+] Decrypting msgstore-2013-05-21.1.db.crypt (msgstore-2013-05-21.1.db) -> 23924752 Bytes + 66285 Messages from 86 contacts [+] Decrypting msgstore-2013-05-22.1.db.crypt (msgstore-2013-05-22.1.db) -> 24018960 Bytes + 66616 Messages from 88 contacts [+] Decrypting msgstore-2013-12-30.1.db.crypt (msgstore-2013-12-30.1.db) -> 24018960 Bytes + 66616 Messages from 88 contacts [+] Decrypting msgstore-2014-02-08.1.db.crypt (msgstore-2014-02-08.1.db) -> 2392080 Bytes + 8027 Messages from 56 contacts [+] Decrypting msgstore-2014-04-14.1..db.crypt (msgstore-2014-04-14.1..db) -> 2392080 Bytes + 8027 Messages from 56 contacts [i] Gathered 610509 messages from 887 contacts! [+] Done! (bmarwell@aeon)[~/Desktop/whatsapxtract/wa_extr] $ |
WhatsApp-Datenbanken mergen
Der eigentliche Schritt findet nun statt. Man erstellt sich einen Ordner „merged“, in dem die einzelnen Dateien zu einer msgstore -Datei zusammengeführt werden. Der erste Parameter ist das Quellverzeichnis, der zweite ein Pattern der Namen, und der dritte Parameter ist das Zielverzeichnis, das wir gerade angelegt haben.
1 2 3 4 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 | (bmarwell@aeon)[~/Desktop/whatsapxtract/wa_extr] $ mkdir merged (bmarwell@aeon)[~/Desktop/whatsapxtract/wa_extr] $ python merge.py ./decrypted/ "msgstore*" ./merged/ ####################################### # WhatsApp Msgstore Merge Tool 0.3 # #------------------------------------# # Merges WhatsApp message files into # # a single one. # # This tool is part of WForensic # # http://sch3m4.github.com/wforensic # ###################################### [i] Origin: ./decrypted/msgstore* [i] Output file: ./merged/ + Merging: ./decrypted/msgstore-2013-05-15.1.db + Merging: ./decrypted/msgstore-2013-05-16.1.db (Merged 0 contacts and 183 messages) + Merging: ./decrypted/msgstore-2013-05-17.1.db (Merged 0 contacts and 81 messages) + Merging: ./decrypted/msgstore-2013-05-18.1.db (Merged 1 contacts and 115 messages) + Merging: ./decrypted/msgstore-2013-05-19.1.db (Merged 0 contacts and 154 messages) + Merging: ./decrypted/msgstore-2013-05-20.1.db (Merged 0 contacts and 106 messages) + Merging: ./decrypted/msgstore-2013-05-21.1.db (Merged 0 contacts and 156 messages) + Merging: ./decrypted/msgstore-2013-05-22.1.db (Merged 2 contacts and 331 messages) + Merging: ./decrypted/msgstore-2013-12-30.1.db (Merged 0 contacts and 0 messages) + Merging: ./decrypted/msgstore-2014-02-08.1.db (Merged 21 contacts and 8026 messages) + Merging: ./decrypted/msgstore-2014-04-14.1..db (Merged 0 contacts and 0 messages) [i] Merged 24 contacts and 9152 messages! (bmarwell@aeon)[~/Desktop/whatsapxtract/wa_extr] $ |
Zusammengeführte WhatsApp-DB verschlüsseln
Ob dieser Schritt notwendig ist, weiß ich gar nicht so genau. Jedenfalls hat er nicht geschadet. Wir erstellen für WhatsApp eine verschlüsselte Kopie der Datenbank.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | (bmarwell@aeon)[~/Desktop/whatsapxtract/wa_extr] $ python encryption.py --encrypt --file merged/msgstore.db --output-dir ./merged-encrypted/ ####################################### # WhatsApp Encryption Tool 0.4 # #-------------------------------------# # Decrypts encrypted msgstore files # # This tool is part of WForensic # # https://sch3m4.github.com/wforensic # ####################################### [i] Setting AES key....... OK [+] Encrypting msgstore.db (msgstore.db.crypt) -> 26360832 Bytes [i] Gathered 0 messages from 0 contacts! [+] Done! (bmarwell@aeon)[~/Desktop/whatsapxtract/wa_extr] $ ll merged-encrypted/ insgesamt 26M -rw-rw-r-- 1 bmarwell bmarwell 26M Apr 18 20:30 msgstore.db.crypt (bmarwell@aeon)[~/Desktop/whatsapxtract/wa_extr] $ |
Schritt 3: Gemergetes Backup wiederherstellen
- Force Close bei Whatsapp – dazu geht man nach Einstellungen – Apps – WhatsApp und klickt auf »Beenden erzwingen«.
- Cache und alle Dateien von WhatsApp löschen. Das ist die schnelle Alternative zur Neuinstallation.
- Die Dateien msgstore.db.crypt und msgstore.db kopiert man nun in den WhatsApp-Database-Ordner ( /storage/extSdCard/WhatsApp/Databases oder /storage/sdcard1/WhatsApp/Databases oder sonst /storage/sdcard0/WhatsApp/Databases ).
- WhatsApp neu einrichten. Es sollte das Backup im letzten Schritt gefunden werden.
Et voilà: Alle Nachrichten sind wieder vorhanden! Hurra! 😎
FAQ
Sind die Tools legal?
Gute Frage, ich habe mir nicht allzuviele Gedanken dazu gemacht. Möglicherweise schon, solange man diese nur für seine eigenen Chatprotokolle verwendet. Das kann ich aber nicht mit Brief und Siegel geben. Der Diebstahl (i.S.v. unberechtigte Kopie) fremder Daten ist in jedem Fall eine Straftat, genauso wie das umgehen wirksamer Kopierschutzmechanismen. Wobei die Definition von wirksam sicher auch diskussionswürdig ist.
Einige der Tools sind Open Source – ich überlasse es dem aufmerksamen Leser, das bei den einzelnen Tools die Lizenz selbst zu studieren. Es besteht allerdings noch die Möglichkeit, dass diese gegen die Nutzungsbedingungen bzw. AGB von WhatsApp verstoßen. Andererseits – wo kein Kläger, da kein Richter.
Hast du das alles alleine herausgefunden?
Nein, mitnichten. Im Endeffekt habe Ich mehrere Anleitungen kombiniert und komprimiert. Ein sehr ähnliches Tutorial steht bei Geekbone. Hier sind die Befehle aber leicht falsch (ein Strich bei -- fehlt), und es wird das Restore nicht beschrieben. Der entscheidende Hinweis steht im Forum von Android-Hilfe.
Das es diese Tools gibt habe ich über eine einfache Google-Suche erfahren. Da die Ergebnisse an sich noch nicht sehr hilfreich waren, habe ich mich für die Dokumentation des kompletten Vorganges entschieden – herausgekommen ist dieser Blogartikel.
Funktioniert das auch für iOS?
Gute Frage. Soweit ich weiß, haben die iOS-Dateien zumindest einen anderen Namen. Einen Versuch wäre es ja Wert. Ausprobiert hab ich es aber nicht.
Hi Ben,
wenn ich allerdings auf dem gleichen Device WhatsApp deinstalliere und anschließend wieder installiere, dann dürften die Chats doch wieder zur Verfügung stehen, da die Nachrichten doch serverseitg gespeichert werden und lokal nur eine Kopie vorhanden ist, oder?
Gruß Denis
Hallo Denis,
ja, nein und wieder ja — aber der Reihenfolge nach:
Ich hoffe, damit sind die entsprechenden Punkte klarer geworden. 🙂
hallo. ist ja cool dass es diese anleitung gibt. die glaube ich einzig nützliche die ich ergoogeln konnte… leider habe ich absolut keinen plan von was hier gesprochen wird 🙁 wie komme ich zu den ganzen sachen? gibt es das ganze irgendwie einfacher? danke!
Hi Billy,
einfacher geht das ganze wohl nicht, weil WhatsApp genau dieses Zusammenführen ja auch nicht vorsieht. Ich habe mich selbst darüber geärgert und genau deswegen diese Anleitung online gestellt. Zudem muss man inzwischen durch andere Art und Weise die DB entschlüsseln, das geht etwa via ADB Backup und dann Entpacken der Dateien. Das beste ist es, jemanden mit viel Linuxkenntnissen und noch mehr Zeit dazuzuholen. Tut mir Leid, eine andere Möglichkeit kenne ich auch nicht.
danke für die info. wäre es möglich dass du dies für mich machen könntest? natürlich gegen eine kleine entschädigung? ich glaube ich komme da in wochen nicht zur lösung 🙁
Hi, das klappt leider meinerseits nicht. Aber schau doch mal im (englischsprachigen) Forum XDA-Developers oder in einem Android-Forum vorbei und verweis auf diesen Artikel. Dort findest du sicherlich jemanden, der das machen würde.
Hallo,
konte das Problem bis dato leider nicht lösen. Kennst du vielleicht jemanden der dies könnte? Natürlich gegen Bezahlung! Danke und lg
Vielen Dank Benjamin, hat funktioniert, aber das Encrypten zum Schluss musste ich weg lassen.
Echt eine coole Sache!
hallo andreas!
wärst du dazu bereit das für mich zu machen? natürlich gegen eine entschädigung!
Hallo,
wie kann ich denn überhaupt dieses WhatsApp Encription Tool öffnen?
Liebe Grüße
Hallo Maxi,
das Tool kann man nicht „öffnen“. Man führt es von der Linux-Kommandozeile (Shell) aus. Dort gibt man wie oben beschrieben diesen Befehl ein:
Gruß, Ben
Ok, und wie gebe ich jetzt den richtigen Pfad ein? Weil über deinen oben angegebenen Pfad kann er es ja nicht finden, oder?
Jedenfalls hab ich die Backups unter /Dieser PC/Windows (C:)/WhatsApp Zusammenführung/WhatsApp Xtract/ gespeichert. Wenn ich das eingebe, sagt er, er kann den Pfad nicht finden.
Jetzt hab ich es auf dem Desktop gespeichert wie du und es klappt immernoch nicht.
Hab da einen Ordner „unmerged“ mit den crypt8 Dateien und einen Ordner WhatsApp XTract.
Ich gebe ein: [Desktop/WhatsApp XTract/wa_xtract/] $ python encryption.py –decrypt –dir ./unmerged/ –output-dir ./decrypted/
Und er findet immernoch nicht den Pfad. Was mache ich falsch?
Kannst du das eventuell auch für mich machen?
Das kann ich leider nicht leisten. Ganz davon abgesehen hat WhatsApp inzwischen auch wieder ein neues Nachrichtenformat.
Aber du befindest dich im falschen Ordner. Du bist in Desktop/WhatsApp XTract/wa_xtract und willst das Verzeichnis Desktop/WhatsApp XTract/wa_xtract entschlüsseln. Du hast aber einen Ordner Desktop/unmerged. Überleg Dir nochmal, in welchen Ordnern du gerade arbeitest.
Wie gesagt, wegen der neuen Verschlüsselung (crypt8) kann es sein, dass die genannten Tools gar nicht mehr funktionieren. Leider.
Gruß,
Ben
Hallo Benjamin,
ich hab´s mittlerweile aufgegeben, trotzdem aber Dankeschön für die nette Hilfe!
Liebe Grüße
Hallo Benjamin,
ich habe mich an Deine Anleitung gehalten aber ich bekomme nur folgende Meldung:
[+] Decrypting .DS_Store (.DS_Store) -> 6144 Bytes
Traceback (most recent call last):
File „encryption.py“, line 228, in <module>
work_dir(args.dir, args.output)
File „encryption.py“, line 166, in work_dir
work_file( filename, dest )
File „encryption.py“, line 132, in work_file
ptext.write(aes.decrypt(block))
File „/Library/Python/2.7/site-packages/pycrypto-2.6.1-py2.7-macosx-10.11-intel.egg/Crypto/Cipher/blockalgo.py“, line 295, in decrypt
return self._cipher.decrypt(ciphertext)
ValueError: Input strings must be a multiple of 16 in length
Hast Du eine Idee was da falsch läuft?
Grüße und Danke im voraus.
Ja, WhatsApp hat seit etwa einem Jahr ein neues Format. Diese Anleitung funktioniert nicht mehr.
Hallo Benjamin,
habe mich sehr über diese Anleitung gefreut und dann auch alle Schritte befolgt.
Leider hat es dann bekanntermaßen nicht funktioniert.
Ein kleiner Hinweis, gleich am Anfang des Artikels, dass diese Anleitung inzwischen überholt ist und nicht mehr funktioniert, wäre sehr hilfreich und zeitsparend für alle, die vorhaben verschiedene WhatsApp Datenbanken zusammen zu führen. Das werden nicht wenige sein, da der Link zu dieser Anleitung mein erster Google-Treffer war.
Viele Grüße
Steffen