wangming1993 / issues

记录学习中的一些问题,体会与心得 https://wangming1993.github.io/issues
8 stars 4 forks source link

sqlcipher 解密微信 db 错误 #90

Open wangming1993 opened 5 years ago

wangming1993 commented 5 years ago

在使用 sqlcipher 解密微信 db 时, 出错

sqlcipher error file is not a database

原因是 sqlcipher 的版本和 加密的微信 db 版本不兼容

因为 我通过 brew install sqlcipher 安装的是 最新的 v4.0.0 解决方案是 安装 v3.x.x 版本的, 于是通过源代码的方式生成

步骤如下:

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

cd sqlcipher

# v3.4.2 是一个 tag, 表示一个版本
git checkout v3.4.2 

## 这里的步骤主要是为了解决 编译的时候openssl 的问题
## sqlite3.c:18280:10: fatal error: 'openssl/rand.h' file not found
brew uninstall --ignore-dependencies openssl
brew uninstall --force openssl
brew cleanup  -s openssl
brew prune
brew install openssl

./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto" CPPFLAGS="-I/usr/local/opt/openssl/include"

make 

然后设置 sqlcipher alias 因为我使用的是 zsh, 所以执行如下步骤:

# 在 ~/.zshrc 中添加如下内容,其中 /Users/wangming/Desktop/sqlcipher 为 git clone 之后的路径
# 注意一旦 make 之后,移动了 sqlcipher 的路径需要重新编译(make)
alias sqlcipher="/Users/wangming/Desktop/sqlcipher/sqlcipher"

source ~/.zshrc