伪造微信语音文件的过程分析
案例 | 随笔 | 知识 | 声音 | 其他 |
编者按
说实话,写这篇《续》,小编是很纠结的。我们绝不是要传授犯罪方法,而是要告诉大家,伪造微信语音聊天记录的行为是如何进行的。(安卓实测,苹果略有不同)
一、微信语音文件的存储
关于这一点,在上篇文章中已经有所描述了。微信语音文件存储在特殊的路径下面,如:
“\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)将目标文件的名称修改为原文件名。
来看看效果怎么样。
点击收听原语音文件:
实施上述操作完成替换后,再点击收听一下,会发现语音文件已经是别的内容了。但此时您不会发现操作上的痕迹留存。因为每篇文章只能登载一个语音文件,所以就无法收听体会替换后的效果了。
2、修改EnMicroMsg数据库和语音文件(手机本身需要root)
操作步骤如下:
(1)确定一个目标语音文件(amr)
(2)将目标文件复制到voice2\…\…\相应的目录下
(3)在EnMicroMsg中的某数据表内找到该条语音记录,把目标文件的名称、路径、文件大小等数值填入数据表。
(4)尽量不修改消息id
第二种方法,需要注意的事项、需要修改的地方比较多,因而产生的修改痕迹也会比较多。
四、未尽事宜
1、建议腾讯对微信语音的存储和播放机制,升级验证方式。
2、帮助毁灭、伪造证据罪有关释义:根据《中华人民共和国刑法》第三百零七条第二款规定,帮助当事人毁灭、伪造证据,情节严重的,处三年以下有期徒刑或者拘役。司法工作人员犯该罪的,从重处罚。 本罪不限于刑事诉讼中,还包括民事诉讼和行政诉讼。
请长按选择识别图中的二维码并关注【信息时代的犯罪侦查】公众号,了解犯罪手段、侦查技术、办案心得,做到自我提升、自我救赎!