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

微信聊天记录保存位置

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

微信数据库文件位置

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

使用命令:

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

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

1
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