沙雕园

沙雕使人进步。


  • 首页

  • 归档

  • 关于我

  • 搜索

时间: 0001-01-01 字数: 1667 字 阅读: 4分钟 阅读次数:

导出微信聊天记录

摘要

微信是一个在简中互联网知名度很高的软件,但其用户体验一直备受诟病。其中一个痛点是换手机会丢失尿天记录。尽管可以通过电脑儿进行备份,但体验极差,且用户无法自由把玩自己的数据,非常不爽。本文使用 ADB 提取出微信的数据库,并提供解密方式。

有别于网上的教程们,我们不使用 sqlcipher 等软件,只用 ADB 和 python 完成操作。并且针对高版本(Android Q)出现的解密失败给出解决方案。

需要准备 root 过的 Android 手机。

如果你的手机不支持 root,可以考虑电脑安装 Android 模拟器,然后备份聊天记录至电脑,再在模拟器里把电脑里的聊天记录同步下来。

Step1 电脑安装 ADB 调试程序

Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip Mac版本:https://dl.google.com/android/repository/platform-tools-latest-darwin.zip Linux版本:https://dl.google.com/android/repository/platform-tools-latest-linux.zip

解压后将路径添加到 path,然后

adb

检查是否装好 ADB。

Step2 连接手机

用 USB 连接手机和电脑(记得手机打开 USB 调教调试)

adb devices

此时应该看到你的手机,类似这样:

List of devices attached
b5f0c03e        device

如果没有,可能是需要安装手机驱动。

Step3 获得微信数据库

更多 ADB 命令:https://zhuanlan.zhihu.com/p/89060003

首先连接手机端 shell 并提升权限:

adb shell
su root

此时手机可能会弹出授权提示,授权即可。下一步打开数据库所在文件夹

cd /data/data/com.tencent.mm/MicroMsg
ls

你会看到里面有一长串字符的文件夹(可能有多个,一个微信号对应一个),文件夹名类似 ee1d************************e79f (32位)。文件夹里的 EnMicroMsg.db 就是我们要的数据库了。但它在 /data 分区,adb 没有权限获取,所以我们要在 shell 里把它复制到手机里其他的地方。

cp /data/data/com.tencent.mm/MicroMsg/ee1d************************e79f/EnMicroMsg.db /sdcard/Download/ee1d.db

这个文件较大,可能会卡几十秒(我这个数据库足足有3个G)。

复制完后退出 shell 模式 (需要退两次,一次退出 root,一次断开连接):

exit
exit

此时回到电脑终端,我们要通过 adb pull 把手机上的数据库整过来:

adb pull /sdcard/Download/ee1d.db C:/Users/yourname/Desktop/

同样,文件巨大的话也会卡一会。复制完成后,别急着断开手机,一会还要用。

Step4 破解数据库密码

这个数据库是加密的,我们得破解它。破解密码需要两个数据:微信 UIN 和手机 IMEI。

再次进入手机 shell:

adb shell
su root

我们要获取微信的 UIN,它藏在一个文件里:

cat /data/data/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml

里面有一个 <int name="_auth_uin" value="xxxx" />,这个 value 就是 UIN。现在可以断开手机了。

然后打开手机拨号键盘,输入 *#06#,可以看到 IMEI,记录下来。(双卡手机有两个 IMEI,通常我们使用第一个,但保险起见两个都记下来吧)

把 IMEI 和 UID 两个字符串直接拼接,然后做 MD5 编码(32位小写),结果的前 7 位就是数据库密码。(UIN 如果是负的也没事,直接当成字符串用就行。)

可以使用这个工具:http://tool.chinaz.com/tools/md5.aspx

解密失败的处理方法:

微信毕竟老奸巨猾,有可能有的人发现密码不对。此时可以尝试以下几种方案:

  • 可以把 IMEI 换成 MEID 试试
  • 把 IMEI 换成 1234567890ABCDEF (这个可能性较大,因为从 Android Q 开始,由于 Google 的安全策略,微信获取不到 IMEI,只能用 123…F 替代)
  • 把 IMEI 换成 15 个 0
  • 如果还不行,可以考虑暴力破解,密码是 7 位 16 进制小写,只有 16^7=268435456 种可能。甚至有人写好了暴力破解脚本,可以参考这里 ,用 GPU 只需要不到 1 个小时。

Step5 打开数据库

到了这一步,网上大多用 sqlcipher 操作,但我并不推荐,原因有三:

  • sqlcipher 付费,需要折腾找破解版
  • 如果数据库较大,导出时程序会崩溃,无法继续进行(我就是!)
  • 图形界面没有敲代码逼格高!

接下来

https://www.jianshu.com/p/90224ab9cdf2

数据库毕竟不太方便,我们可以导出 CSV 方便后续操作。

点此下载 sqlcipher ,用软件打开数据库,输入密码,就可以看到里面内容了。

这个数据库里有很多东西,大家可以自行探索。聊天记录存在 message 表里,点击 File-Export,然后选择 Table name: message 即可。有了 csv,配合 python 就可以为所欲为了。

注意:如果数据库十分巨大,导出会卡一会。这时候导出完了

李华大冒险1 - 浴室的羞耻play
精神病人

精神病人

精神病人欢乐多!

44 日志
14 分类
14 标签
GitHub
标签云
  • 学习 15
  • 技术 6
  • 李华大冒险 6
  • 游戏 3
  • 科普 3
  • 整活 2
  • 更新 2
  • 经验分享 2
  • 我中央公文 1
  • 敢想 1
© 2010 - 2025 沙雕园
Powered by - Hugo v0.101.0 / Theme by - NexT
/
Storage by Github 仓库 /
0%