操作步骤

1、打开 Mac 端微信,先不要登录。

2、打开终端,输入命令:

1
lldb -p $(pgrep WeChat)

后回车,查看 微信进程的相关信息,会进入 lldb 的子shell界面。

3、在 lldb 子shell中输入命令

1
br set -n sqlite3_key

回车。

4、然后输入 c 回车。

5、然后登陆Mac版微信,手机允许登录,这时微信会卡着,没关系,影响后面的操作。

6、接着,入命令

1
memory read --size 1 --format x --count 32 $rsi

回车,读取内存中 寄存器 rsi 存储的值。会输出类似如下最下面的数据:

1
2
3
4
5
(lldb) memory read --size 1 --format x --count 32 $rsi
0x600000420a40: 0x1a 0xfe 0x49 0x10 0xf7 0x04 0x41 0x66
0x600000420a48: 0xbf 0xd6 0xb3 0xec 0x9d 0x16 0xe2 0xa4
0x600000420a50: 0x06 0x71 0xcd 0x27 0x77 0xda 0x4f 0x28
0x600000420a58: 0xb0 0x46 0xbe 0xa8 0x6e 0x2d 0xe6 0x40

接下来就是要处理这里获取到的内容,去掉 : 之前的内存地址,把所有后面的两位字符拼接起来,再在前面加上Ox,我的方法是把这内容拷贝一下,地址手动删除,搜索 空格+0x 全部替换为空,然后拼接上就OK了。

1
2
3
4
5
获取微信数据库加密 Key
0x600000420a40: 0x1a 0xfe 0x49 0x10 0xf7 0x04 0x41 0x66
0x600000420a48: 0xbf 0xd6 0xb3 0xec 0x9d 0x16 0xe2 0xa4
0x600000420a50: 0x06 0x71 0xcd 0x27 0x77 0xda 0x4f 0x28
0x600000420a58: 0xb0 0x46 0xbe 0xa8 0x6e 0x2d 0xe6 0x40

结果:

1
0x1afe4910f7044166bfd6b3ec9d16e2a40671cd2777da4f28b046bea86e2de640

试了一下,还有个 wccontact db,里面是所有联系人,联系人的 m_nsUsrName 做一次 md5 后对应聊天记录 db 里以 Chat_xxx 开头的表。

终于可以把我一些有用的记录导出来了,谢谢~

参考地址:

https://www.jianshu.com/p/48aab7eb52ee

https://www.v2ex.com/t/466053

http://xferris.cn/dao-chu-wei-xin-bei-fen-de-mac/

https://zhuanlan.zhihu.com/p/91257989

https://zhuanlan.zhihu.com/p/91257989