代码实现sqlite的解密(sqlcipher 微信数据库)

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

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

2、获取微信EnMicroMsg.db库的密码,方法见网页: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、但是我们写程序是要在代码中实现的,不可能告诉用户你自己去查看数据库,自己去组织数据结构。。。

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

我自己研究了一下,要用代码实现,只能通过sqlite的特色命令:PRAGMA,

先生成一个migrated文件,然后再拷贝一个无密码的db文件,后面的操作直接针对这个无密码db即可。

如果数据库文件很大,这个拷贝过程还是很耗时的。

具体操作可以参照我的另一篇随笔“sqlcipher 数据库解密”中的第5条。

代码实现sqlite的解密(sqlcipher 微信数据库)

上一篇:[leveldb] 学习leveldb第一个类Status


下一篇:微信公众帐号开发教程第12篇-符号表情的发送(下)