对于微信的使用,这几年来越来越普遍,大众。甚至在简历的里面,有时为了方便交流,也会留下微信的联系方式。但是对于微信聊天记录的保存,个人感觉不是很友好。最近由于一些失误,把重要的信息搞没了,然而里搞外搞,发现,原来都是在瞎搞......对了,我的是android微信。
微信有个 :recover
微信的隐藏功能,输入:recover,恢复聊天记录
对于这个方法,我想只能说我瞎,由于没有看到最关键的一句话,注意:目前仅支持IOS系统。所以......GG。
各种恢复软件
对于第一个办法不行之后,我开始寄希望各种强大的软件。搜索后,发现,这个更不靠谱。有好几个都吹嘘说,可以恢复的一年前的微信聊天记录。然而一个个试后,不是不骗钱,就是流氓软件。
破解EnMicroMsg.db文件
我不是一个喜欢折腾的人,很不喜欢。但是这个信息比较重要,没办法,只能折腾了。我想,如果可以找到以往的聊天记录,那么在本地可能存在对应的聊天数据文件(EnMicroMsg.db)。所以就开始了下面的折腾。
手机已经获取
root
权限
在折腾前的第一件事情,就是把手机获取root
的权限。对于root
权限,简单的来说就是,你获得了手机完整的控制权。不像以往一样,无法卸载系统预装的应用,也没有办法查看一些系统文件。当然root
的方法有很多,现在也有一些一键root的软件,比如360root
,root大师
,root精灵
等等......root
成功后,下载RE文件管理器
,用以查看系统文件。-
取得EnMicroMsg.db文件
打开RE文件管理器
从根目录开始,进入此目录data/data/com.tencent.mm/MicroMsg/
,我们发现有很多长字符串的文件夹,这就是在此手机上登录过的微信的数据。打开任意一个,我们会发现EnMicroMsg.db文件,这就是聊天记录的文件。然后弄到PC上。
-
获得
IMEI
和UIN
-
IMEI(International Mobile Equipment Identity)
是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的"电子串号",它与每台移动电话机一一对应。当然如果是双卡手机的话,就会存在俩个IMEI值,查询方式:在拨号界面下输入:*#06#
,则可能会显示如下(双卡)。
移动通信国际识别码1 : 123456789012345 移动通信国际识别码1 : 123456789054321 MEID:1234567890124
-
uin(user information)
,也就是特定微信用户的ID。打开RE管理器
从根目录开始,进入此目录data/data/com.tencent.mm/shared_prefs/
,我们可以看到一个文件名为system_config_prfs.xml
,打开。
... <int name="default_uin" value="1234567890" /> ...
里面的value就是我们所要的uin信息。
-
打开EnMicroMsg.db文件
在打开文件前,我们需要下载一个sqlcipher软件,但是在打开文件时,发现文件有加密。这就需要用到上面的IMEI
和UIN
啦。
在解密的过程中,我们把IMEI
和UIN
合在一起,进行md5加密,然后取前七位(必须为小写),就是文件的密码。
IMEI : 123456789012345
UIN : 1234567890
string : 1234567890123451234567890
md5加密 : 9bed8bc3f4d541efa25f39d8a0c7bf98
解锁文件密码:9bed8bc
打开后就是这样,选取message表,则其中的talker就是对方微信账号,而content就是聊天的内容。
在Execute SQL中,我们可以先把 talker 通过某条记录查找到,然后通过执行SQL语句来查看结果集。比如,查看与xxx的聊天内容。
select content from message where talker = 'gh_6f6409369de6';
虽然能玩玩,但是也就是能看你当前聊天界面所有的信息,不能恢复以前的。
干了这么多,没有卵子用。
结论
结论,就是不能恢复。我们通过查看结果集发现,删除掉的记录不再表中,之后我又实验了一下,发现删除聊天窗口的同时,也会在table中进行更新。
之后,我在知乎发现:安卓微信5.3(大概在2014年中发布)以后的版本已经不支持聊天记录恢复,在删除的时候就已经覆写了一遍。说实话有点心痛。