微信聊天记录解析(2):EnMicroMsg.db数据解析

1. 聊天记录相关表

具体每个字段的含义,基本都可以通过自行测试的方式知晓。

个人账号信息:userinfo

最近联系人:rconversation

通讯录:rcontact

群:chatroom

用户头像:img_flag

聊天记录:message

聊天记录图片文件:ImgInfo2

聊天记录视频文件:videoinfo2

聊天记录语音消息:voiceinfo

*各类消息类型整理(参考Enum):

@AllArgsConstructor
public enum MicroMsgTypeEnum {
    TEXT(1, "文本消息"),
    IMAGE(3, "图片消息"),
    VOICE(34, "语音消息"),
    ACCOUNT_CARD(42, "分享名片"),
    VIDEO(43, "视频消息"),
    BIG_EMOJI(47, "大表情"),
    LOCATION(48, "地图定位消息"),
    SHARE_ARTICLE(49, "分享卡片"),
    VOIP_VOICE_VIDEO(50, "音视频通话消息"),
    REVERT_MSG(1000, "撤回消息提醒"),
    MONEY_RED_PAPER_RECEIVED(10000, "领取红包"),
    MONEY_RED_PAPER(436207665, "红包"),
    MONEY_TRANSFER(419430449, "转账"),
    ATTACH(1090519089, "文件"),
    MUSIC(1040187441, "音乐"),
    ;
    public final Integer type;
    public final String label;

}

2. 聊天附件

2.1. 图片文件(ImgInfo2)

缩略图,路径和字段thumbImgPath的值有关,举例,如,thumbImgPath的值为:

THUMBNAIL_DIRPATH://th_65040aa7739f248dc71fab84a6fcfe21

则文件目录为:

/com.tencent.mm/MicroMsg/用户目录/image2/65/04/th_65040aa7739f248dc71fab84a6fcfe21

大图(手机上下载了原图才有,如果没有点击大图或查看原图,则对应的文件是无法打开的,也可能是加密的,但是我目前不知道如何解密,知道的伙伴可以分享一下),路径和字段bigImgPath的值有关,举例,如,bigImgPath的值为:

8e914dea195e68d5a7b9889ae5fead55.jpg

则文件目录为:

/com.tencent.mm/MicroMsg/用户目录/image2/8e/91/8e914dea195e68d5a7b9889ae5fead55.jpg

注意:

发送的图片和接收的图片有所区别,发送的图片名称,在实际存储目录中的名称,可能会带有特殊符号“⌖”,所以,如果根据上述md5名称找不到文件,可以将文件名拼接上字符“⌖”后再次尝试;如果找到了,则需要读取其中的内容(实际上,“⌖”文件是一个文本文件),其内容是一个文件名,需要再次到 /com.tencent.mm/MicroMsg/用户目录/image2/.ref/d 查找该文件。

2.2. 视频文件(videoinfo2)

视频文件在目录:

/com.tencent.mm/MicroMsg/用户目录/video 中,文件名称取字段filename

的值,一般情况下,视频封面文件为:filename.jpg,视频文件为:filename.mp4

2.3. 语音消息文件(voiceinfo)

语音消息文件的路径和字段FileName值有关,举例,如,FileName的值为:

431551022125574aba4d930104

需要先将FileName取Md5,这里431551022125574aba4d930104取Md5后的值为:

85a74299ac9e6352885bc65ced2df826

则文件目录为:

/com.tencent.mm/MicroMsg/用户目录/voice2/85/a7/msg_431551022125574aba4d930104.amr

注意,.amr文件是无法直接播放的,需要通过 silk_v3_decoder 和 ffmpeg 结合的方式进行转码,转码到.mp3后才可以播放,具体如何转码,可以参考下一章《微信聊天记录解析(3):微信语音消息.amr转码到.mp3》

2.4. 表情文件

微信默认表情,我这里整理了一份 png格式的共108个表情,需要的可以直接 点击下载

表情的获取方式是,通过手机发送所有表情到“微信文件传输助手网页版”,然后在“微信文件传输助手网页版”消息页面按 Ctrl + S保存该网页的资源,再通过爬虫的方式解析img标签及其css的背景图获取到的表情,如果后续微信表情有更新,可以参考这个方式来重新获取表情。

大表情(网络表情),我只找到了表情封面所在的位置,举例,如message表的imgPath字段值为:d98d1b5a148023c22ab90ed1816ca239,则表情封面所在位置为:/com.tencent.mm/MicroMsg/emoji/cover/d98d1b5a148023c22ab90ed1816ca239_cover

至于动态表情如何解析,我目前还没有找到方法,知道的伙伴可以分享一下(期待!!!)。

==================================================

博主说明:文中若有错误,敬请指出,如有侵权,请及时联系删除。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值