异想之旅:本人原创博客完全手敲,绝对非搬运,全网不可能有重复;本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告。本人所有文章仅在CSDN、掘金和个人博客(一定是异想之旅域名)发布,除此之外全部是盗文!
本文件针对 .../WeChat Files/wxid_xxxxxxxx/Msg
下的各个文件解密后的内容进行概述。
未作特别说明的情况下,“聊天记录数据”指代的数据结构上都和Multi
文件夹中的完整聊天记录数据相同或类似。
本文默认你已经获取并且解密了 SQLite 文件,关于这一步的具体方法,详见:微信PC端数据库文件解密_异想之旅的博客-CSDN博客
关于 Multi 文件夹内的数据库详见:微信PC端各个数据库文件结构与功能简述 - Multi文件夹_异想之旅的博客-CSDN博客
微信小程序相关
Applet
微信小程序的相关数据,包括但不限于:
- 你使用过的小程序
RecentWxApp
- 星标的小程序
StarWxApp
- 各个小程序的基本信息
WAContact
意义不大。
企业微信相关
BizChat
企业微信联系人数据,包括但不限于:
- 在微信中可以访问的企业微信会话
ChatInfo
- 一部分会话的信息
ChatSession
(未确认与ChatInfo
的关系;这其中的Content
字段是最近一条消息,疑似用于缓存展示的内容) - 包括群聊在内的聊天涉及的所有企业微信用户身份信息
UsrInfo
- 该微信账号绑定的企业微信身份
MyUsrInfo
特别说明的是,我目前还没有详细查证,这其中的聊天是否包含使用普通微信身份与企业微信用户发起的聊天,还是只包含使用绑定到普通微信的企业微信身份与其它企业微信身份发起的聊天。
BizChatMsg
企业微信聊天记录数据,包括所有和企业微信。
与BizChat
一样,我还没有确定涉及的范围究竟是只有企业微信-企业微信还是同时包含普通微信-企业微信。
另外,此处的消息与Multi
文件夹中真正的微信消息不同的是在于没有拆分数据库。
OpenIM 前缀
这个也是企业微信的数据,包括联系人、企业信息、与企业微信联系人的消息等。
简单看了一下,觉得应该这个是普通微信-企业微信的数据,上面biz
前缀的是企业微信-企业微信
这个不常用,而且也没有全新的数据结构,不再详细说了。
PublicMsg
看起来像是企业微信的通知消息,你也可以理解为企业微信的企业应用消息
微信功能相关
Emotion
顾名思义表情包相关,包括但不限于以下内容:
- CustomEmotion:顾名思义用户手动上传的GIF表情,包含下载链接,不过看起来似乎有加密(内有
aesKey
字段但我没测试) - EmotionDes1 和 EmotionItem 应该也是类似的内容,没仔细研究
- EmotionPackageItem:账号添加的表情包的集合列表(从商店下载的那种)
顺便吐槽一句,微信这些地方居然使用 http 而非 https
Favorite
顾名思义收藏的内容相关,包括但不限于:
- FavItems:收藏的消息条目列表
- FavDataItem:收藏的具体数据。没有自习去看他的存储逻辑,不过大概可以确定以下两点
- 即使只是简单收藏一篇公众号文章也会在 FavDataItem 中有一个对应的记录
- 对于收藏的合并转发类型的消息,合并转发中的每一条消息在 FavDataItem 中都是一个独立的记录
- FavTags:为收藏内容添加的标签
Misc
有BizContactHeadImg
和ContactHeadImg1
两张表,应该是二进制格式的各个头像
Sns
微信朋友圈的相关数据:
- FeedsV20:朋友圈的XML数据
- CommentV20:朋友圈点赞或评论记录
- NotificationV7:朋友圈通知
- SnsConfigV20:一些配置信息,能读懂的是其中有你的朋友圈背景图
- SnsGroupInfoV5:猜测是旧版微信朋友圈可见范围的可见或不可见名单
FTS(搜索)
问了问 ChatGPT 并经过一点简单的尝试,我暂且认定前缀为 FTS 的数据库可能都和全文搜索(Full-Text Search)相关。
FTSContact
有一堆表,我能读懂的有 FTSChatroom15_content
和 FTSContact15_content
两个,分别对应的是微信“聊天”界面会展示的消息会话(包括公众号等)和“联系人”界面会出现的所有人(有的时候并不是所有联系人都会出现在“聊天”中),信息包含昵称、备注名和微信号,也和微信支持搜索的字段相匹配。
FTSFavorite
搜索收藏内容的索引,还是只能看懂 FavData1_content
,不过那些看不懂的表也是和上面 FTSContact 存在的表命名方式一样。
还发现有意思的一点:对于收藏内容通过文字搜索,电脑版是把所有东西拼接成一个超长字符串来实现的。这对于文本、链接等没啥问题,但是对于合并转发消息,就会出现搜索 [图片]
这一关键词可以生效的奇怪事情。
FTSMsg
按照名字,这应该是用来搜索聊天记录的。然而显然他不可能把所有的聊天记录索引,打开之后FTSChatMsg2_content
表中也只有几百条数据,暂且认为这个也没用吧。
MultiSearchChatMsg
这个数据库前缀不一样,但是看内容和结构应该还是一个搜索相关,搜索的是聊天记录中的文件,这里存储了文件名和其所在的聊天。不过FTSMsgSearch18_content
和SessionAttachInfo
两张表记录数量有显著差异,不确定是哪个少了或是怎样。
HardLink(文件在磁盘存储的位置)
将文件/图片/视频的文件名指向保存它们的文件夹名称(例如2023-04),有用但不多。
MicroMsg(核心之一)
严格来说这只是一个数据库,不应该和分类平级,但是我认为这是分析到目前以来最核心的,因此单独来说了。
AppInfo
一些软件的介绍,猜测可能是关于某些直接从手机APP跳转到微信的转发会带有的转发来源小尾巴的信息
Biz 前缀
与公众号相关的内容,应该主要是账号本身相关。
能确定的是 BizSessionNewFeeds 这张表保存的是订阅号大分类底下的会话信息,包括头像、最近一条推送等。
ChatInfo
保存“聊天”列表中每个会话最后一次标记已读的时间
ChatRoom 和 ChatRoomInfo
存储群聊相关信息
- ChatRoom:存储每个群聊的用户列表(包括微信号列表和群昵称列表)和个人群昵称等信息
- ChatRoomInfo:群聊相关信息,主要是群公告内容,与成员无关
顺便再吐槽一下,微信这个位置有一个命名出现异常的,别的表前缀都是ChatRoom
,而突然出现一个ChatroomTool
Contact
顾名思义,联系人。不过这里的联系人并不是指你的好友,而是所有你可能看见的人,除好友外还有所有群聊中的所有陌生人。
- Contact:这张表存储的是用户基本信息,包括但不限于微信号(没有好友的陌生人也能看!)、昵称、备注名、设置的标签等等,甚至还有生成的各种字段的拼音,可能是用于方便搜索的吧
- ContactHeadImgUrl:头像地址
- ContactLabel:好友标签 ID 与名称对照
PatInfo
存了一部分好友的拍一拍后缀,但是只有几个,我记得我电脑上显示过的拍一拍似乎没有这么少?
Session
真正的“聊天”栏目显示的会话列表,一个不多一个不少,包括“折叠的群聊”这样子的特殊会话;信息包括名称、未读消息数、最近一条消息等
TicketInfo
这张表在我这里有百余条数据,但是我实在没搞明白它是什么
未能确定分类或内容的
ChatMsg
该数据库包含多个表,然而大多数都是空白的。有明确内容的表主要包括以下:
- ChatCRMsg:一部分聊天记录数据,没看明白究竟是符合什么条件的消息包含在里面
- DelSessionInfo:被删除的好友列表(猜测可能聊天记录仍保留在本地?)
- Name2ID_v1:ChatCRMsg的辅助数据表
补充:有评论区大佬指路如下,本人没有那段时间的数据无法验证,具体请自行判断
ClientConfig
根据名字猜测是客户端配置信息,然而其内部只有Config
和MmExptAppItem
两张表且内容都很短(小于10行),无法确定其实际作用。
CustomerService
本人打开时这里面没有任何有效数据,表包括ChatCRMsg
Name2ID
Session
TransCRTable
四张,猜测可能是微信小程序等的客服聊天相关内容。
FunctionMsg
在我这里这个东西两张表只有一行有效数据,根据名称猜测这是公众号或小程序创建的一些奇怪聊天。
SyncMsg
其中有一个名为UnSupportedMsg
的表,猜测内容是电脑端不支持的消息(例如微信红包等等),记录在这里以保证本地数据完整
未能分析出任何有效信息的
ImageTranslate
只有一张表ImageTranslateCache
,在我这里其内部没有任何数据
LinkHistory
只有一张表LinkHistory
,在我这里其内部没有任何数据
Media
只有两张表ChatCRVoice
和MediaInfo
,在我这里其内部没有任何数据
评论区有大佬说这是 ChatMsg 的语音信息
PreDownload
Voip
应该是海外微信的 Voip 通话功能,和我们没关系
xInfo
该数据库文件没有加密,可直接读取。
该文件主要字段为二进制字符串,无法分析。