美文网首页
Mac版 + iPhone 微信聊天记录的获取

Mac版 + iPhone 微信聊天记录的获取

作者: Superman168 | 来源:发表于2019-08-27 17:52 被阅读0次

    前言

    最近尝试着做 IM 聊天的开发,因为没有多少实际经验,只能摸索着来,找一些作为参考:
    微信肯定是最具权威得了,但现在获取微信的一些信息也要费一点功夫的,例如聊天记录的数据存储。

    Mac版微信获取方法

    今天在网上先看下Mac版微信聊天记录的获取方法:
    首先 Mac版微信聊天记录数据库并不难找,很容易就找到了,但是都是经过加密的,目录如下:

    ‎⁨Macintosh HD⁩ ▸ ⁨用户⁩ ▸ ⁨用户名称 ▸ ⁨资源库⁩ ▸ ⁨Containers⁩ ▸ ⁨com.tencent.xinWeChat⁩ ▸ ⁨Data⁩ ▸ ⁨Library⁩ ▸ ⁨Application Support⁩ ▸ ⁨com.tencent.xinWeChat⁩ ▸ ⁨2.0b4.0.9⁩ ▸ ⁨86bef63f52ddf83be5e6c43765279994⁩> Message

    也可以通过命令查看:

    ls -alh ~/Library/Containers/com.tencent.xinWeChat/Data/Library/Application\ Support/com.tencent.xinWeChat///Message/*.db

    macOS 微信的“备份与恢复”功能只能从手机微信导出到 Mac, 但是微信其实又在本地存了加密的 sqlite3 数据库; 本地数据库的是一系列 *.db 文件,如图:

    image.png

    经过大神观察,微信存数据使用的是开源的 sqlcipher, 所以还是有办法导出微信在 Mac 本机的数据库的, 今天试了一下在 目前最新的系统 macOS Mojave 10.14.5 MAC 版微信 2.3.16 测试是 OK的;

    操作步骤:(此方法依赖于 LLDB 调试)

    1. 打开 Mac 端微信,先不要登录。
    2. 打开终端,输入命令:

    lldb -p $(pgrep WeChat)

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

    1. 在 lldb 子shell中输入命令

    br set -n sqlite3_key

    回车。

    1. 然后输入 c 回车。
    2. 然后登陆Mac版微信,手机允许登录,这时微信会卡着,没关系,影响后面的操作。
    3. 接着,入命令

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

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

    操作步骤

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

    如下的转换过程:

    获取微信数据库加密 Key
    0x6000024795c0: 0xf5 0x36 0x38 0xf3 0xf3 0xb4 0x40 0x43
    0x6000024795c8: 0x8e 0xb7 0x84 0xef 0xd3 0x58 0xee 0xb8
    0x6000024795d0: 0xb2 0xe3 0x65 0x2a 0xe6 0x88 0x4d 0xf2
    0x6000024795d8: 0x9f 0x05 0xf9 0xa9 0x4f 0xf8 0xa2 0x88

    结果:

    0xf53638f3f3b440438eb784efd358eeb8b2e3652ae6884df29f05f9a94ff8a288

    到这里基本上准备工作已经 OK了,接着就是安装软件了。

    • https://sqlitebrowser.org/ 下载Mac版本的 DB Browser for SQLite 并安装。
    • 打开 DB Browser for SQLite ,在菜单栏选择 打开数据库 ,在弹出的对话框中选择一个保存Mac版微信聊天记录的数据库文件 *.db,然后在 SQLCipher加密 的界面中,将密码方式设为 Raw key,将 Encryption settings 选为 SQLCipher 3 defaults,在密码输入框中输入上上一步中得到的66位字符串,点击 OK 按钮。

    如图:

    image.png

    如果没有问题的话,你会看到这样的界面 :

    image.png

    恭喜你成功的打开了微信本地的数据库,接下来你就可以随意查看或者导出数据库中的数据了。

    附:

    开始第一次并没有成功,原因是 Raw Key 合成错了,还以为是DB Browser for SQLite 软件的问题呢,又安装了 Homebrew,重新安装一遍软件发现还是不行,回过头才发现 key 错了,走了一点弯路,所以要细心。

    参考文章:

    https://blog.csdn.net/swinfans/article/details/88712593

    iPhone微信导出数据库

    参考文章:

    导出微信iOS数据库

    亲测 OK,文章还有数据库的分析,可以参考学习一下。

    相关文章

      网友评论

          本文标题:Mac版 + iPhone 微信聊天记录的获取

          本文链接:https://www.haomeiwen.com/subject/gsueectx.html