编者按
说实话
,写这篇《续》,小编是很纠结的。我们绝不是要传授犯罪方法,而是要告诉大家,伪造微信语音聊天记录的行为是如何进行的。
(安卓实测,苹果略有不同)
一、微信语音文件的存储
关于这一点,在上篇文章中已经有所描述了。微信语音文件存储在特殊的路径下面,如:
“\tencent\MicroMsg\eba0728********b0dc37b485f3bd894\voice2\a4\7a\msg_1014170619186b86ec8b45f105.amr”
其实,在这个路径下,
仅仅
保存了语音文件本身。微信app还将依靠一个巨大的数据库文件,对所有的聊天记录进行管理,这个数据库的名字是:
EnMicroMsg
,当然还有其他一些辅助的db文件。
在这个数据库的某些重要数据表中,保存了文本型、媒体型的聊天记录信息。当然,我们在本文中仍然以语音聊天记录为例进行讲述。关于EnMicroMsg的文件结构,此处不予赘述。
二、微信语音聊天的设计机制
为便于表述,我们以A接收到B的语音为例。
1、当微信号A收到语音文件(msg_1014170619186b86ec8b45f105.amr)时,发生的过程是这样的:
(1)首先对文件名进行解析,在voice2下产生两级目录.
(2)将该文件复制到该目录下存储。
(3)更新EnMicroMsg数据库,把接收到这条语音的信息计入数据库,登记的信息至少包括以下内容:
(字段名称和表结构非取自真实环境,小编演绎了一下)
2、同样的,当微信号A点击该语音收听时,发生的过程是这样的:
(1)从EnMicroMsg中找到这条记录,按照记录中登记的路径和文件名找到语音文件msg_1014170619186b86ec8b45f105.amr.
(2)获取文件大小字节数,与EnMicroMsg中记录的字节大小是否一致,如果一致就播放,不一致就提示“播放失败”。
三、伪造语音文件的两个办法
从上文的介绍,我们至少可以分析出两种伪造微信录音的方法。(提示:伪造的方法有很多,但是有的方法过于复杂,本文解析的两个方法相对容易实施。)
1、仅替换语音文件名
操作步骤如下:
(1)找一个与原语音文件字节相近的文件(amr),删除末尾若干字节,或者在末尾处添加若干0,使文件与原文件字节大小完全一致。如本文中的示例文件3920字节。
(2)在手机voice2\…\…\下,将原文件删除或改名,把修改好的文件复制于此。
(3)将目标文件的名称修改为原文件名。
来看看效果怎么样。
点击收听原语音文件: