41982c3f2da99d9d57bdb352a6beabe4786dfe22
Dump Wechat Messages from Android
How to use:
Install Dependencies:
- python-numpy
- python-PIL
- eyed3
- sox
- python-csscompressor(optional)
Get Necessary Data:
- Get /data/data/com.tencent.mm/MicroMsg/long-long-name/EnMicroMsg.db from root filesystem, possible ways are:
adb root,adb pull /xxx/xxx.db- Use your rooted file system manager app
- Get WeChat user resource directory from user filesystem, for example: sdcard:/tencent/MicroMsg/long-long-name. (could be different)
- Get Wechat uin, possible ways are:
- Login to web-based wechat; get wxuin=1234567 from
document.cookie - Get
default_uinfrom /data/data/com.tencent.mm/shared_prefs/system_config_prefs.xml.
- Login to web-based wechat; get wxuin=1234567 from
- Get phone IMEI, possible ways are:
- Call
*#06#on your phone - Find IMEI in system settings
adb shell dumpsys iphonesubinfo | grep 'Device ID' | grep -o '[0-9]*'
- Call
Run:
- Decrypt database, will produce decrypted_db.db (for now, Linux x64 only):
./decrypt_db.sh <path to EnMicroMsg.db> <imei> <uin>
- Parse and dump text messages of every contact:
./dump_msg.py decrypted_db.db output_dir
- Dump messages of one contact to single-file html, containing voice messages and images:
./dump_html.py decrypted_db.db <resource directory> <contact name> output.html
TODO
- Parse uncommon message types
- Show name of emoji in text
- Search by uid/username..
- Fix emoji sizes..
- Sometimes beautiful soup failed on links..
Languages
Python
78.1%
Java
13.7%
HTML
3.8%
Shell
3.7%
JavaScript
0.6%