教你解密微信数据库
2023-12-25 08:1:25 Author: 网络安全与取证研究(查看原文) 阅读量:28 收藏

   最新聊天的时候谈起微信聊天解密的问题,解密方式已经公开好多年了,还没变。经多年前的记忆,手机端的微信,图片、视频信息撤回后,可以在本地找到相应的记录。由此猜测,撤回的信息可能还保存在数据库中。本篇文章就介绍如何解密获取微信聊天记录,恢复或撤回的信息咱们下个文章介绍。

准备工具:

1SQLite Database Browser(或 Navicat Premium 等等)

27-zip 或其他解压缩工具

过程:

1、获取EnMicroMsg.db文件;

  已root过的手机直接找“/data/data/com.tencent.mm/MicroMsg/<user-md5>”路径下的“EnMicroMsg.db”数据库;没root的手机还是使用手机自带的备份功能,或手机厂商官方的备份工具最方便。

   本次演示的是VIVO设备,利用的官方互传软件备份。备份完成之后,会生成多个数据文件,我们可先用解压缩软件预览文件。找到带有com.tencent.mm”(微信包名)的压缩包进行解压。

   解压完成后,找到包名为 com.tencent.mm(微信) 的文件夹。我们主要要获取的是 rsp 两个文件夹。r里包含的微信聊天记录的数据库文件,sp里包含微信的UIN码。

        r文件夹下有一个MicroMsg,文件夹下又有很多hash值命名的文件夹,每一个以这种方式命名的代表一个微信号。

   该目录下有三个hash值命名的,说明手机上曾经登陆过三个微信号。

   本次随机演示一个微信号下的聊天记录解密,找到该目录下的 EnMicroMsg.db 文件,这个就是聊天记录sqlite数据库。

2、微信打开“EnMicroMsg.db”数据库是需要密码的,密码的获取规则为:IMEI+UIN的值做MD5加密,取MD5值的前7位(且计算过程中,所有字母均为小写);

UIN识别码:存储在/data/data/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml文件中。如果是备份的话,就在spshared_prefs)目录下。

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

IMEI识别码:拨号界面输入*#06#,或者在关于手机里都可以查询的到,如果有双卡两个IMEI都要记录。我这边有两个,如图所示:

IMEI867911043234491867911043234483。那么我们就开始拼接IMEI+UIN计算MD5值取前7位字符(注意:MD5加密的时候一定复制32位小写的):

MD5(867911043234491529748223) = 7b4e0a53c01ef22c7669aa8cd64c3b94,取前7位就是:7b4e0a5

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

   两个密码都错误?这是为什么?原先以为备份的问题,但是备份了很多次,依旧出现这个问题。期间也换了很多SQLite的查看工具,依旧无功而返。

PS:如果微信获取不到手机的IMEI信息的话,会生成一个默认IMEI1234567890ABCDEF,利用默认IMEI+UIN进行加密即可。我们再来尝试解密一下,发现确实成功了。


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg3NTU3NTY0Nw==&mid=2247488399&idx=1&sn=6bf54d53f87ebdf50963cc40eb8041f5&chksm=ce0e83af7736430e837b15270041e3be1577f96b7efe900cb9fa2e364c0ec1b8c467f7f40bfc&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh