15 directories, 0 files
Message出来了,这是不是我们想要的呢?再往下看里面的目录:
├── MessageTemp├── fts├── msg_0.db├── msg_0.db-backup├── msg_0.db-shm├── msg_0.db-wal├── msg_1.db
如果你登录过该台电脑并同步过信息,那么不出意外会有挺多*.db后缀的文件。大胆地猜测一下,这是不是我们想要的聊天数据存放路径呢?
不要管太多,先看看总不会错,一般本地存储的数据库,咱们程序员第一反应应该就是SQLite,要不要试试?
sqlite3 Message/msg_0.dbsqlite> .schemaError: file is not a databasesqlite>
??提示不是数据库,此时陷入了瓶颈,怎么就不是数据库了呢。反思一下,是不是打开的姿势不对。
会不会是加密了?依照这个思路,我了解到有一款基于SQLite的扩展数据库SQLCipher[1],SQLCipher是一个在SQLite基础之上进行扩展的开源数据库,它主要是在SQLite的基础之上增加了数据加密功能。
实践证明,我猜想的是对的,接下来主要做的怎么打开Message/msg_0.db这个文件并成功读取里面的数据。
最后我参考到一份有意思的问答,我就是参考这个问答[2]对数据库进行解密,这里我复述一下:
•打开微信,但是先不登录•打开终端,输入lldb -p $(pgrep WeChat)•会看到进入了lldb,然后输入br set -n sqlite3_key,按回车•在lldb中,输入c&