本文旨在指导用户如何获取微信聊天中的语音记录,并将其转换为WAV格式以供后续处理。适用于已经获取Root权限的安卓手机用户。
image2
文件夹:存放所有微信聊天图片,路径:/data/data/com.tencent.mm/MicroMsg/[32位字母]/image2
voice2
文件夹:存放所有微信语音,路径:/data/data/com.tencent.mm/MicroMsg/[32位字母]/voice2
voide
文件夹:存放所有微信视频,路径:/data/data/com.tencent.mm/MicroMsg/[32位字母]/voide
avatar
文件夹:存放所有微信头像,路径:/data/data/com.tencent.mm/MicroMsg/[32位字母]/avatar
Download
文件夹:存放微信聊天发送的文件,路径:/data/data/com.tencent.mm/MicroMsg/Download
EnMicroMsg.db
: 微信数据库文件,路径:/data/data/com.tencent.mm/MicroMsg/[32位字母]/EnMicroMsg.db
WxFileIndex.db
: 微信文件索引数据库文件,路径:/data/data/com.tencent.mm/MicroMsg/[32位字母]/WxFileIndex.db
注:32位字母根据不同账号生成,多账号登录将出现多个文件夹。
EnMicroMsg.db
和 WxFileIndex.db
均被加密,需获取秘钥解密:
获取秘钥:使用 MD5(IMEI+uin)
取前7位作为访问密码。若为大写字母需转换为小写。拼接时不需使用+
号。IMEI为手机IMEI码,在手机设置中可查。新版微信使用1234567890ABCDEF
代替IMEI。
获取uin:访问 /data/data/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml
。
生成秘钥:使用 MD5(1234567890ABCDEF+uin)
,去掉+
号,取前7位。MD5在线加密 - 站长工具 (chinaz.com)
使用 SQLCipher 打开数据库文件。
将数据库导出为CSV格式以便分析。
id
为2的value
是个人微信ID。avatar
文件夹无头像,可使用此表地址访问头像。reserved2
为缩略图,reserved1
为高清图。在message
表中,`
type`字段表示消息类型,包括:
媒体类型消息(如图片、语音、视频等)可通过msgId
字段在WxFileIndex.db
的WxFileIndex3
表中找到对应文件路径。
message
表中imgPath
字段值(如:THUMBNAIL_DIRPATH://th_5a24c5d362dae72b0ad52d78767ba883
)指向image2
文件夹中对应文件。message
表的imgPath
在video
文件夹中找到对应视频。封面.jpg
,视频.mp4
。message
表的imgPath
字段经MD5加密后,前4字母表示两级文件夹,文件名格式为msg_imgPath值.amr
。/sdcard/Android/data/com.tencent.mm/MicroMsg/Download
,通过msgId
在WxFileIndex3
表中查找路径。avatar
文件夹中,微信ID经MD5加密后前4字母表示两级文件夹,格式为user_md5字符串.png
。微信语音使用SILK v3编码,需用silk-v3-decoder进行解码。安装GCC、ffmpeg等工具后进行转码。转码完成后,需将语音文件地址后缀改为转码后的格式(如.mp3
)。