网络上已经有一些关于探讨如何导出 IOS 版微信聊天记录的导出,比如 WeBackiTools ,但这两类工具主导针对的都是小白用户,并没有给出如何获取完整数据库的方案,尽管实际原理相差无几,但想要程序更好地进行操作数据,还是所有差别,特此记录。

目前最新的 IOS 版本为 10.1.1,据观察该版本的备份文件存储格式与 IOS9 略有不同,因此部分没有及时更新的导出工具暂时无法使用。

创建 iPhone 备份

想要获取到应用的具体数据,就先要将数据以备份的形式先存储在电脑上,本文以 Mac 系统为例。

首先,使用数据线将手机连接上电脑,如果是首次连接,需要选择 信任该电脑

然后打开 iTunes,找到正在连接的手机:

image

备份 区域内,选择 本电脑,并务必取消勾选 给 iPhone 备份加密,否则之后我们取出的数据也是无法使用的:

image

接着,点击 立即备份 并等待备份完成:

image

至此,备份工作就已经完成了。

获取微信数据库

为了方便地取出相应的备份数据,我们需要借助工具 iPhone Backup Extractor,虽然这是一款收费软件,但是试用的功能已经完全满足我们的需求。

下载安装后,在左侧列表找到我们刚刚创建的备份文件(图标为 iTunes 样式的):

image

单击之后需要等待加载完成,大约需要几十秒。加载完毕之后,我们就可以选择专家模式(Expert Mode):

image

我们需要的文件为 Application Domains/com.tencent.xin/{UUID}/DB/MM.sqlite,将其勾选:

image

在 com.tencent.xin 目录下会有多个 UUID 组成的目录,其中一个全部为 0 可以忽略。剩下就需要根据你的微信用户来选择了(如果知道算法的小伙伴请不吝赐教!),我的手机只登陆过一个微信号,所以没有这个麻烦:

image

最后,就可以单击右下角的 Extract 按钮导出数据库了:

image

大功告成!

至于数据库里面的具体关系,我也并没有全部搞清楚,但是会在下篇中举出已经发现的线索,足够进行用户识别和聊天记录分析。敬请期待! 大家可以参阅文章 iOS 微信的本地存储结构简析

相关阅读: