微信记录导出

根据https://articles.forensicfocus.com/2014/10/01/decrypt-wechat-enmicromsgdb-database/
http://blog.emaze.net/2013/09/a-look-at-wechat-security.html
两篇文章可以得知微信的 EnMicroMsg.db 的 key 为 md5(imei + uid)[:7]
https://github.com/ppwwyyxx/wechat-dump实现了解密和提取聊天记录,然而光是有了 key,还不能正确解密 EnMicroMsg.db
因为有一些参数要设置正确才可以。。。如下:

1
2
3
4
PRAGMA key = `key`;
PRAGMA cipher_use_hmac = OFF;
PRAGMA cipher_page_size = 1024;
PRAGMA kdf_iter = 4000;

这样才可以解开。。。

过程中遇到的问题:

  1. 本来想直接用 MesaSQLite 等软件,输入了 key 提示失败,原因应该在于其他参数不一致吧。
  2. 根据http://blog.csdn.net/u010062440/article/details/50077047尝试自己安装 sqlcipher,命令行解密,然而失败,参数原因。
  3. mac 上安装 pysqlcipher 失败,原因在于 OS X 10.11(EI Captain)去掉了默认的 openssl 库,
    1. brew install openssl
    2. brew link openssl –force
    3. 然而,pip install pysqlcipher 依然失败,因为 /usr/local/include 不在 cc 的 header path 中
    4. 根据 http://stackoverflow.com/questions/4825652/how-do-i-add-a-directory-to-c-header-include-path
      export C_INCLUDE_PATH=/usr/local/include
      再安装就好了。。。
      由于安装的时候 sudo了,所以先sudo -s 再 export 吧。不然 sudo 后的环境变量会消失。

参考知乎中的解答https://www.zhihu.com/question/19924224