手机微信数据库解密_enmicromsg.db
前言:
最新聊天的时候谈起微信聊天解密的问题,解密方式已经公开好多年了,还没变。经多年前的记忆,手机端的微信,图片、视频信息撤回后,可以在本地找到相应的记录。由此猜测,撤回的信息可能还保存在数据库中。本篇文章就介绍如何解密获取微信聊天记录,记录恢复或撤回的信息咱们下篇文章详细介绍。
准备工具:
1、SQLite Database Browser(或 Navicat Premium 等)
2、7-zip 或其他解压缩工具
过程:
1、获取EnMicroMsg.db文件;
已root过的手机直接找“/data/data/com.tencent.mm/MicroMsg/”路径下的“EnMicroMsg.db”数据库;没root的手机还是使用手机自带的备份功能,或手机厂商官方的备份工具最方便。
比如我是VIVO,就可以用官方备份工具“互传”,华为有“华为手机助手”,也可以使用OTG备份。

我们备份完成后,将备份出的文件用压缩软件打开,找到第一个目录为“com.tencent.mm”的文件,这个是微信的包名,其他APP同理会显示包名。

在文件夹内直接搜索“EnMicroMsg.db”,这个文件为微信的本地数据库文件。到这里这一步就完成了,我们如果搜到多个db文件说明有微信分身。

当然,我们也可以直接找到“/data/data/com.tencent.mm/MicroMsg/”,“EnMicroMsg.db”就在此路径的根目录下。

2、微信打开“EnMicroMsg.db”数据库是需要密码的,密码的获取规则为:IMEI+UIN的值做MD5加密,取MD5值的前7位(且计算过程中,所有字母均为小写);
UIN识别码:存储在/data/data/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml文件中。

我们打开“auth_info_key_prefs.xml”文件,根据下图红框所示,找到UIN码。这里需要注意的是,有的UIN识别码是带“ - ”减号的,在计算MD5值需要加上!

IMEI识别码:拨号界面输入*#06#,或者在关于手机里都可以查询的到,如果有双卡两个IMEI都要记录。我这边有两个:“861639049707055”和“861639049707048”。
那么我们就开始拼接IMEI+UIN计算MD5值取前7位字符(红色为IMEI,蓝色为UIN,粉色为前七位,注意:MD5加密的时候一定复制32位小写的):
- 861639049707055445004976 = 4d09017(前七位)d90dab7a9de6533d372365f3a

- 861639049707048445004976 = b0c9d7c(前七位)04707f8cd3a59476ae80795c4

- 拿到密码了之后,我们就把“EnMicroMsg.db”拖进数据库输入密码,查看聊天记录。我这里有两个密码,第一个不对就试第二个。

但是我们将两个密码都尝试了,还是无法打开(显示以下报错)

这个时候我们会发现,一直报错无法解密微信db文件。第一反应是不是备份或者“Left7(Md5(IMEI+UIN)”计算错了?
那么我们可以尝试使用微信默认记录的IMEI值“1234567890ABCDEF”再加上微信UIN码进行计算,也就是:
1234567890ABCDEF445004976 = 3b5b0eb(前七位)a7a22b92d1ecc432ddb47fc27

我们利用“3b5b0eb”成功解密微信数据库

那么最后的总结是,微信数据库解密的密码分为两种情况:
1、IMEI + UIN计算MD5值取前7位字符
2、1234567890ABCDEF + UIN计算MD5值取前7位字符


