https://github.com/allen1881996/WeChat-Data-Analysis
打开电脑端微信(不要登陆)
在Terminal输入命令lldb -p $(pgrep WeChat)
br set -n sqlite3_key
设置断点
输入c
,回车(继续运行
登陆电脑端微信
输入memory read --size 1 --format x --count 32 $rsi
,回车
arm 上替换为 memory read --size 1 --format x --count 32 $x1
将返回的原始key粘贴到下面的字符串中,用如下代码解析获取密钥:
ori_key = """
0x60000241e920: 0x11 0x22 0x33 0x44 0x55 0xaa 0xbb 0xcc
0x60000241e928: 0x11 0x22 0x33 0x44 0x55 0xaa 0xbb 0xcc
0x60000241e930: 0x11 0x22 0x33 0x44 0x55 0xaa 0xbb 0xcc
0x60000241e938: 0x11 0x22 0x33 0x44 0x55 0xaa 0xbb 0xcc
"""
key = '0x' + ''.join(i.partition(':')[2].replace('0x', '').replace(' ', '') for i in ori_key.split('\\n')[1:5])
print(key)
本地聊天数据库存储路径:~/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/[version]/[uuid]/Message/*.db
App: DB Browser for SQLite 选择如下配置,复制密钥,即可打开浏览:
Tencent的开源项目WCDB是一个高效、完整、易用的移动数据库框架,基于SQLCipher,支持iOS, macOS和Android。****
SQLCipher 中使用 sqlite3_key 函数打开加密的数据库,wcdb 将其封装在setCipherKey方法下:
int sqlite3_key(sqlite3 *db, const void *pKey, int nKey)
使用 br set -n sqlite3_key
设置其断点。