当前位置: 首页 > Android > 正文

Android微信數據導出

在Nexus 5(Android 4.4)+WeChat 5.4,和Nexus 5(Android 5.0)+Wechat 6.0上測試可用。

獲取加密的sqlite3數據庫EnMicroMsg.db

如果已經root過,可以下載/data/data/com.tencent.mm/MicroMsg/*/EnMicroMsg.db

若沒有root,則/data/data/com.tencent.mm下多數目錄都不可讀,可以使用下面的方法:

  • 開啓“開發人員選項”,選上“USB偵錯”
  • 電腦上執行adb backup -noapk com.tencent.mm
  • 在手機上彈出對話框提示是否允許備份
  • 不要設置密碼,點備份,電腦會收到backup.ab
  • 解壓backup.abdd if=backup.ab bs=24 skip=1 | openssl zlib -d > backup.tar
  • 解壓backup.tar得到數據庫apps/com.tencent.mm/r/MicroMsg/*/EnMicroMsg.db

獲取用於生成密鑰的信息

  • uin:訪問/data/data/com.tencent.mm/MicroMsg/*/system_config_prefs.xml,獲取其中name="default_uin" value="([0-9]+)"value字段值uin。也可以打開wx.qq.com網頁版,查找.wx.qq.com域的cookie,其中wxuin字段的值就是uin。也可以用backup.tar裏的apps/com.tencent.mm/sp/system_config_prefs.xml
  • IMEI:在撥號盤輸入*#06#獲取IMEI,或者開啓“USB偵錯”後使用adb shell dumpsys iphonesubinfo得到15個十進制數字組成的imei。網上查到有些機型可能使用不同於IMEI的其他字段用於生成密鑰。

使用sqlcipher解密

把上面兩步得到的imeiuin拼接起來計算MD5。執行echo -n "$imei$uin" | md5sum | cut -c -7獲取sqlcipher使用的加密密鑰,下面用abcdefg指代。

執行sqlcipher EnMicroMsg.db,輸入:

解密得到可用sqlite3打開的decrypted_database.db

注意,sqlcipher不同版本使用的加密方式不同,我嘗試使用3.8.4.3版本打開數據庫文件,得到如下錯誤信息:

目前發現2.1.1版本的sqlcipher可以解密。可以下載https://github.com/CovenantEyes/sqlcipher-windows/releases提供的2.1.1的Windows用exe,用wine運行,或者在https://launchpad.net/ubuntu/+source/sqlcipher/2.1.1-2/+build/4642377上下載libsqlcipher0_2.1.1-2_amd64.debsqlcipher_2.1.1-2_amd64.deb,執行:

解壓後執行:

解析message表並導出消息

message表儲存消息。目前瞭解到從fmessage_conversationrcontactchatroom表中可以得到一些聯繫人和聊天室的信息。

暫時使用一個比較粗糙的Ruby腳本導出信息,需要先gem install sqlite3

Refenrences

来自:http://maskray.me/blog/2014-10-14-wechat-export

本文固定链接: http://web.wqz.me/318.html | 网络手抄本

该日志由 网络手抄本 于2015年10月13日发表在 Android 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: Android微信數據導出 | 网络手抄本
关键字: ,

Android微信數據導出:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter