微信数据库便是使用这种加密方式,因此可以用来解密微信数据库

安装sqlicipher

直接安装

apt-get install sqlcipher

使用源码编译

下载源代码

git clone https://github.com/sqlcipher/sqlcipher.git

定义 SQLITE_HAS_CODEC和SQLITE_TEMP_STORE=2

export SQLITE_HAS_CODEC
export SQLITE_TEMP_STORE=2

安装openssl和tcl

sudo yum install openssl
sudo yum install tcl

进入sqlcipher源码目录进行编译

./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto"
make
make install

编译成功

[root@localhost sqlcipher]# sqlcipher --version
3.11.0 2016-02-15 17:29:24 3d862f207e3adc00f78066799ac5a8c282430a5f

解密sqlite文件

sqlcipher EnMicroMsg.db 'PRAGMA key = "key"; PRAGMA cipher_use_hmac = off; PRAGMA kdf_iter = 4000; ATTACH DATABASE "decrypted_database.db" AS decrypted_database KEY "";SELECT sqlcipher_export("decrypted_database");DETACH DATABASE decrypted_database;'

或者

sqlcipher EnMicroMsg.db 'PRAGMA key = "key"; PRAGMA cipher_migrate; ATTACH DATABASE "decrypted_database.db" AS decrypted_database KEY "";SELECT sqlcipher_export("decrypted_database");DETACH DATABASE decrypted_database;'

解密得到可用sqlite3打开的decrypted_database.db。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

React-Native学习(1) 上一篇
Android 6.0运行时权限小结 下一篇