WeChat, die beliebteste mobile IM-App in China, bietet keine Methoden zum Exportieren des strukturierten Nachrichtenverlaufs.
Wir haben das Speicherprotokoll von WeChat-Nachrichten rückentwickelt und stellen dieses Tool zum Entschlüsseln und Analysieren von WeChat-Nachrichten auf einem gerooteten Android-Telefon bereit. Es kann die Nachrichten auch in eigenständige HTML-Dateien rendern, einschließlich Sprachnachrichten, Bildern, Emojis, Videos usw.
Die Funktionsfähigkeit des Tools mit der neuesten Version von Wechat wurde zuletzt am 01.01.2025 überprüft. Wenn das Tool für Sie funktioniert, nehmen Sie sich bitte einen Moment Zeit, um Ihr Telefon/Betriebssystem zum Wiki hinzuzufügen.
./third-party/compile_silk.sh
)pip install -r requirements.txt
. ./android-interact.sh db
. Möglicherweise wird eine falsche Benutzer-ID verwendet.${userid}
heraus, indem Sie den Inhalt von /data/data/com.tencent.mm/MicroMsg
im Root- Dateisystem des Geräts überprüfen. Es sollte ein 32 Zeichen langer Name sein, der aus Hexadezimalziffern besteht./data/data/com.tencent.mm/MicroMsg/${userid}/EnMicroMsg.db
vom Gerät ab../decrypt-db.py decrypt --input EnMicroMsg.db
Rufen Sie WeChat uin (eine Ganzzahl) ab. Mögliche Möglichkeiten sind:
./decrypt-db.py uin
, das in /data/data/com.tencent.mm/shared_prefs/
nach uin suchtdocument.cookie
abRufen Sie Ihre Geräte-ID (eine positive Ganzzahl) ab. Mögliche Möglichkeiten sind:
./decrypt-db.py imei
implementiert einige Möglichkeiten, um die Geräte-ID zu finden.*#06#
auf Ihrem Telefon anDatenbank mit einer Kombination aus UIN und Geräte-ID entschlüsseln:
./decrypt-db.py decrypt --input EnMicroMsg.db --imei <device id> --uin <uin>
HINWEIS: Möglicherweise müssen Sie verschiedene Möglichkeiten ausprobieren, um die Geräte-ID zu erhalten und eine zu finden, die die Datenbank entschlüsseln kann. Einige Telefone verfügen möglicherweise über mehrere IMEIs. Möglicherweise müssen Sie alle ausprobieren. Siehe #33. Der Befehl gibt die entschlüsselte Datenbank unter EnMicroMsg.db.decrypted
aus.
Wenn die obige Entschlüsselung nicht funktioniert, können Sie auch den Passwort-Cracker ausprobieren, um den Schlüssel brutal zu erzwingen. Der Verschlüsselungsschlüssel ist nicht sehr stark.
Kopieren Sie das WeChat-Benutzerressourcenverzeichnis /data/data/com.tencent.mm/MicroMsg/${userid}/{avatar,emoji,image2,sfs,video,voice2}
vom Telefon in das resource
:
./android-interact.sh res
RES_DIR
im Skript, wenn der Speicherort dieser Verzeichnisse auf Ihrem Telefon anders ist. Für ältere Versionen von Wechat lautet das Verzeichnis möglicherweise /mnt/sdcard/tencent/MicroMsg/
tar
mit oder ohne Komprimierung zu archivieren und dann das Archiv zu kopieren. busybox tar
wird empfohlen, da das tar
des Android-Systems auf langen Pfaden verstopfen kann.resource
mit folgendem Unterverzeichnis: avatar,emoji,image2,sfs,video,voice2
. (Optional) Laden Sie den Emoji-Cache von hier herunter und entpacken Sie ihn unter wechat-dump
. Dadurch wird vermieden, dass beim Rendern zu viele Emojis heruntergeladen werden.
wget -c https://github.com/ppwwyyxx/wechat-dump/releases/download/0.1/emoji.cache.tar.bz2
tar xf emoji.cache.tar.bz2
Textnachrichten jedes Chats analysieren und ausgeben (erfordert entschlüsselte Datenbank):
./dump-msg.py decrypted.db output_dir
Alle Chats auflisten (erforderliche entschlüsselte Datenbank):
./list-chats.py decrypted.db
Statistikbericht zu Textnachrichten erstellen (erfordert output_dir
von ./dump-msg.py
):
./count-message.sh output_dir
Nachrichten eines Kontakts in HTML ausgeben, die Sprachnachrichten, Emojis und Bilder enthalten (erfordert entschlüsselte Datenbank und resource
):
./dump-html.py "<contact_display_name>"
Die Ausgabedatei ist output.html
.
Überprüfen Sie ./dump-html.py -h
um unterschiedliche Pfade zu verwenden.
Screenshots des generierten HTML:
Hier finden Sie ein Beispiel-HTML.
grep 'TODO' wechat -R