根据四哥教程来自己动手实现一下如何读取微信的聊天记录。以下操作需要在手机Root的情况下进行。

微信聊天记录保存位置

微信聊天记录的数据库文件保存在 /data/data/com.tencent.mm/MicroMsg/32位字符串/ 中,名字为 EnMicroMsg.db

微信数据库文件位置

将聊天记录数据库文件导出

使用命令:

adb pull /data/data/com.tencent.mm/MicroMsg/32位字符串/EnMicroMsg.db

 

导出1
直接导出提示不存在,因为是权限的问题。
使用adb root没反应,只好将文件copy到一个非root权限可以操作的目录,这里采用了 /data/local/tmp 文件夹。

cp EnMicroMsg.db /data/local/tmp/

 

然后导出,执行命令 adb pull /data/local/tmp/EnMicroMsg.db

权限不足

提示权限不足,修改权限后导出。

修改权限导出

查看SharedPreferences中保存的UIN的值

切换到 /data/data/com.tencent.mm/shared_prefs 目录,然后执行 grep -rn "uin" * 来查看保存的UIN的值

Shared_Pre文件
查看UIN的值

读取微信数据库文件内容

将手机的IMEI和微信用户UIN值进行拼接后进行md5加密,取小写md5的前七位就是微信数据库的密码。
用Navicat读取数据库文件是提示错误:
Navicat读取数据库文件时提示错误
这是因为微信数据库用的是SQLCipher开源库提供的加密解密算法,读取数据库文件需要使用SQLCipher这个软件。
打开后输入密码,即可看到聊天内容:
微信聊天记录

参考资料

http://blog.csdn.net/jiangwei0910410003/article/details/52238891

via。http://fuping.site/2017/04/09/%E5%BE%AE%E4%BF%A1%E8%81%8A%E5%A4%A9%E8%AE%B0%E5%BD%95%E8%AF%BB%E5%8F%96/