New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

如何备份导出 IOS 微信聊天数据库 #15

Open
Unknwon opened this Issue Nov 22, 2016 · 2 comments

Comments

2 participants
@Unknwon
Owner

Unknwon commented Nov 22, 2016

日期:2016-11-21
更新:2016-11-23

网络上已经有一些关于探讨如何导出 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 微信的本地存储结构简析

相关阅读:

@Unknwon Unknwon added the WeChat label Nov 22, 2016

@wangxuesong

This comment has been minimized.

Show comment
Hide comment
@wangxuesong

wangxuesong Nov 23, 2016

UUID应该是微信号的md5值,这篇文章介绍的比较全。

wangxuesong commented Nov 23, 2016

UUID应该是微信号的md5值,这篇文章介绍的比较全。

@Unknwon

This comment has been minimized.

Show comment
Hide comment
@Unknwon
Owner

Unknwon commented Nov 24, 2016

@wangxuesong 谢谢!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment