1. 背景
本想初始化mac,但是看到微信所占内存很大,想必都是聊天记录吧。从几年前一直想提取微信聊天记录,但整不出来,再试一次。
2. 写在前面
之前都知道微信聊天记录备份的数据在本地的db文件里,但是一直访问不了db文件,今天拜读了简书上大佬的文章,有点醍醐灌顶,原因是db文件的访问需要密钥。再一次尝试,竟然成了。
先上效果: 数据成功读取,后面python啥的,都好处理了。
3. 步骤
3.0 前置步骤
1、电脑:Mac 2、微信db文件路径:~/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/2.0b4.0.9/ 说明:该文件夹下有一些类似于365e4ad4v3fede5b5df0b30e1b083bc1d的文件夹,每个微信对应一个文件夹。消息位于文件夹下面的Message子文件夹。msg_0.db就是我们的微信聊天记录。
3.1 获取文件密码
因为db文件进行了加密,所以之前访问一直没能访问到。
3.1.1 确保电脑 SIP 的开启状态
1、终端输入下面命令。
csrutil status
结果如下。如果为enable,则需要关闭。如果为disable则跳过此步骤。 2、关闭操作。 a.重启,并在开机的时候长按 Command 和 R b.进入系统恢复状态 c.点击屏幕顶部工具栏上的 实用工具,选择终端 d.在终端中输入 csrutil disable 回车,会出现下述字符串,再次重启生效
Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect.
3、检查,如下则说明没问题。
3.1.2 获取密钥
步骤如下:
打开电脑端微信(不要登陆)在Terminal输入命令lldb -p $(pgrep WeChat)输入br set -n sqlite3_key,回车输入c,回车手机扫码登陆电脑端微信这时候电脑端微信是会卡在登陆界面的,不需要担心,回到Terminal输入memory read --size 1 --format x --count 32 $rsi,回车就可以获取到了密钥
中间可能需要一些确认,让你输入「y/n」之类,按照理解输入即可。最后输出结果为:
0x6000003624e0: 0x54 0x60 0x97 0x05 0xb5 0x09 0x43 0x9f
0x6000003624e2: 0x94 0xe8 0x38 0x09 0xdc 0x5e 0x79 0x53
0x6000003624f0: 0x94 0xe8 0x38 0x09 0xdc 0x5e 0x79 0x53
0x6000003624f8: 0x9a 0xa6 0x97 0x05 0xb5 0x09 0x43 0x9f
忽略左边的地址( 0x6000003624e0: ,0x6000003624e2:),从左到右,从上到下,把形如 0xab 0xcd 的数据拼起来,然后去掉所有的 "0x"和空格、换行, 得到 64 个字符的字符串,这就是微信数据库的 key。
比如:上述的结果为:54609705b509439f94e83809dc5e795394e83809dc5e79539aa69705b509439f
3.1.3 访问数据
1、目前使用的是DB Browser for SQLite,下载地址如下:DB Browser For SQLite 2、打开软件,链接db文件。这里两个点需要注意: a、选择原始密钥 b、选择SQLCipher 3默认 c、填入密码,需要先手动输入0x,再将我们上面的54609705b509439f94e83809dc5e795394e83809dc5e79539aa69705b509439f复制进去。 否则,粘贴不了。 4、输入密码后,粘贴就完成数据库连接啦,后面就可以再IDEA中查看数据了。
以上,over,感谢两位大佬的文章。获益匪浅,后面关于python的尝试,下次再搞。
参考文章: 关于微信数据库的解密以及取证 Python - 获取微信聊天记录
推荐文章
发表评论