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

Posted Love流浪的猪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码实现sqlite的解密(sqlcipher 微信数据库)相关的知识,希望对你有一定的参考价值。

最近在研究解密微信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表中也可以查看群组信息。

 

以上是关于代码实现sqlite的解密(sqlcipher 微信数据库)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中使用“FMDB/SQLCipher”进行加密和解密?

虚拟机编译SqlCipher源码

sqlcipher与Microsoft.Data.Sqlite.Core踩坑

sqlcipher与Microsoft.Data.Sqlite.Core踩坑

归档和分析的 SQLCipher "sqlite_3key" 警告,调试没有警告

SQLCipher、encrypted-core-data 和 iOS - 两个 .sqlite 文件正常吗?