解密微信sqlite数据库

最近在研究解密微信APP的数据库,

1、通过Android手机内置备份功能,可以获取到微信的数据库文件,再通过adb传到电脑上。

2、获取微信EnMicroMsg.db库的密码(通过IMEI和uin值)

方法见网页:http://www.wjdiankong.cn/android%E9%80%86%E5%90%91%E4%B9%8B%E6%97%85-android%E4%B8%AD%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E5%9C%A8%E9%9D%9Eroot%E8%AE%BE%E5%A4%87%E4%B8%AD%E8%8E%B7%E5%8F%96%E5%BA%94%E7%94%A8%E9%9A%90/ 

3、有了密码就可以使用工具查看数据库的内容,sqlcipher官方的解密功能是要收费的,不过牛比的网友们已经实现了免费的查看功能,并且有windows系统下的。具体工具可以百度。

4、但是我们写程序是要在代码中实现的,不可能告诉用户你自己去查看数据库,自己去组织数据结构。。。

代码实现在网上也可以搜到,但我试了很多,基本没有可以拿来直接使用的。

我自己研究了一下,要用代码实现,步骤如下:

(1)sqlite3_key

(2)执行命令:PRAGMA cipher_migrate;    

用3.X的开源库兼容2.X的加密解密方法。因为微信用的是2.x版本的sqlite,而现在基本是3.x版本的sqlite库.

此处很耗时,如果可以直接使用2.x版本的库更好。

(3)自由查看各个表。微信联系人、公众号、群组等都在rcontact表中,聊天记录都在message表中,在chatroom表中也可以查看群组信息。

原文地址:https://www.cnblogs.com/pjl1119/p/7010486.html