微信账号和语音文件的结构分析
注:感谢作者授权转发,来源公众号【信息时代的犯罪侦查】
请扫描文后二维码关注
编者按
对微信的聊天记录进行取证分析,是大家比较关注的内容之一。小编前阵子研究了一下微信账号的结构以及微信语音文件的命名规则。赘述于此,有许多未尽事项,望有意者参与进来。(安卓实测,苹果略有不同)
相信大家都使用微信发送和接收过语音。可曾想过,这一段段的语音在手机中是如何存储的?知道这一点很重要,因为在取证工作中,这是必要的基础知识。到目前为止,腾讯并未公布语音文件存储和命名规则,因此,我们的很多结论都是逆向实证的产物,未必正确,但具有参考性。
一、关于微信账号
每个微信号码都会关联几个不同维度的账户,比如:微信号、缺省微信号、手机号码、QQ号码等。在腾讯内部,其实每个微信号码仍然只有一个唯一账号,这是一个“mm+10位数字”的内部账号,平时我们很难见其尊容。可以这么推测,所有的关联账号都会以这个内部账号为基准。“mm”是什么含义?不是美眉,是micromsg的缩写。
使用MD5算法,计算这个内部账号的哈希值,可以得到一个128位的MD5值。如果有兴趣的话,您可打开手机的文件管理功能,找到微信所在的文件夹,就能看到以该MD5值为名称的文件夹,这里保存这您所有的聊天记录、图片、语音、视频……,应有尽有。
其实,真正的过程是:对这个MD5值进行反算碰撞,得到微信内部账号。
二、微信语音的存储方式
微信语音采用amr文件格式,这是移动通信系统中使用最广泛的语音标准,大家也不需要深入理解amr的数据结构。
最关键的,您要知道,微信语音采用文件存储的方式就行了,换句话说,任何一段语音都会是一个文件。而有些数据信息,比如:文本聊天记录、手机短信等等,就不是采用这种存储方式。这也产生了二者截然不同的数据恢复方式。
但有些问题也不尽然,毕竟在手机存储中做数据恢复还受制于“屌爆”的flash存储模式。关于这一部分,以后有时间再单说吧。
(第一次接受腾讯发布的文中广告)
三、微信语音文件的命名规则(部分)
在手机文件管理下,打开“voice2”文件夹,一大堆犹如“小瘪三”长相一般目录出现了,都是两个字符的名字。这里面存储的便是您与众多好友的微信语音,既包括点对点、也包括群聊。
微信的语音文件就结结实实的保存在这些小小的文件夹内。打开看看:
这串数字是什么意思?我们试着简单解析一下。
从图示,我们可以这么描绘这条语音记录:
2018年6月19日9:48:48,标识为“919ac93”的微信用户发送的一条语音记录(附带随机码为:00d9102)。
四、待解决的问题
1、“919ac93”虽然能够唯一标识微信用户(即与微信号一一对应),但该标识号与微信号之间的换算关系,小编尚未搞清楚。
2、微信语音文件名附带的那串随机码到底是何用意?我能想到的,也只能是区分在相同时间发出语音的顺序。从这个意义上来讲,大家也能够理解为什么语音不能转发了吧。
请长按选择识别图中的二维码并关注【信息时代的犯罪侦查】公众号,了解犯罪手段、侦查技术、办案心得,做到自我提升、自我救赎!