微信聊天记录恢复

3,515 阅读4分钟

这里的恢复,并不是指要将删除的聊天记录恢复到微信聊天记录中,仅仅是想找到那部分误删除的记录。

场景

在没有任何备份的条件下,误删好友聊天记录。(备份指 系统备份 或者 通过微信的备份功能备份聊天记录)

结果

不可恢复。在网上查看了很多方法,包括各种数据恢复软件,通过测试发现都是不可行的,至少我本地多次测试是这种情况。误删除的数据,确确实实从聊天记录表message里面删除了。网上说的那些方法,确定能用吗?

操作过程

获取数文件

其实就是 /data/data/com.tencent.mm/MicroMsg/微信号文件夹/EnMicroMsg.db 文件,这是一个加密的sqlite数据库文件,获取这个文件的方式目前来说有两种:

  1. 开启root权限,通过文件管理器直接访问;
  2. 通过手机的自带的备份功能获取到这个文件,有些手机支持,有些手机不支持,备份的原理就是将整个 com.tencent.mm 文件夹打包,然后放到 /Backup 文件夹下面;

获取微信UIN

/data/data/com.tencent.mm/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml 文件里面,找到 name = '_auth_uin' 对应的 value

获取手机IMEI

拨打 *#06#

获取加密密码

根据 UIN 和 IMEI 进行MD5加密,返回32位MD5码,密码 = MD码.substring(0, 7).toLowerCase()

查看聊天记录

  1. 通过 sqlcipher.exe 打开 EnMicroMsg.db 文件,打开的时候会要求输入密码,就是上面根据 UIN 和 IMEI生成的密码。
  2. 可以发现里面有很多的表,其中聊天记录就保存在 message 表里面。
  3. 通过返回测试,发现删除聊天记录在 message 表中是不存的,说明记录真正从 message 里面删除了?有没有备份表?不知道

001
002
003

说句实话,当我看到message表内容的时候,我感觉胜利就在眼前,但当我知道message表里面没有误删的数据的时候,我绝望了,太难了。然后想问一下腾讯客服,然后在官网看到这么一段话。

004

然后我果断放弃咨询了。

测试过程

最开始不想开启手机root权限,也不知道其实通过系统备份的文件就是 com.tencent.mm 文件夹里面的内容,耽误了很多时间。因为在这种情况下根本拿不到 /data/data/com.tencent.mm/MicroMsg/微信号文件夹/EnMicroMsg.db 文件,没有权限。

不想root手机最主要的原因就是不知道这种方式到底能不能恢复聊天记录,手机是刚买的,root之后就放弃了三包,很纠结。为了验证这种方式的可行性,最后下载了一个 夜神模拟器,嗯,就把它当作是电脑上的一部手机就可以,可以很方便的开启root权限。操作步骤如下:

  1. 安装夜神模拟器;
  2. 安装微信,登录自己的微信,随便聊天;
  3. 导出 EnMicroMsg.db 文件,通过 sqlcipher 查看 message 表内容;
  4. 故意删除几个人的聊天记录,然后重复步骤3;
  5. 得出结论:删除的记录不在 message 表中;

但是,你以为这就完了?

没有,我不想相信这个结果,于是我从网上找了一些微信聊天记录恢复软件,感觉这些软件的原理都差不多:

  1. 先通过手机自带备份功能备份微信数据;有些手机好像没有这个功能,我测试时用的是魅族16s,是有这个功能的
  2. 执行恢复操作;

有了前面的讲解,这个过程就很好理解了。通过手机自带备份功能备份微信数据,其实就是为了拿到 com.tencent.mm 文件夹里面的所有内容,接下来的恢复操作其实就是就是拿到 EnMicroMsg.db 文件内容展示出来;

于是,我又将手机备份的文件拷贝的电脑上,再通过sqlcipher进行分析

结果还是一样的,删除的记录不在 message 表中

但是,你以为这就完了?

没有,我去淘宝买了一个数据恢复软件,不到10分钟这位小哥说给我退款。什么情况??????

所以我很想知道,微信在没有任何备份的情况下,真的可以恢复误删的聊天记录吗?

iphone可以恢复,听说是将数据上传到了icloud。穷,没用过耶,也不知道是真是假???

其实我还抱有一丝侥幸心理,有没有可能手机备份出来的文件又问题,少了一部分?虽然我自己都不信,但还是申请了开通root权限。有时间再试试看吧,感觉没戏。