专栏名称: 信息时代的犯罪侦查
一切行为皆有犯罪的可能性,而在信息时代,这一过程变得更加复杂或者隐晦了。本号致力于传播打击和预防犯罪的手段、方法、理念,并希望能够推动侦查犯罪的机制变革,而这需要了解方方面面的信息。
目录
相关文章推荐
929南通交通广播  ·  女子追剧险失明?只因一个习惯→ ·  3 天前  
一起神回复  ·  经常在外面吃饭,为什么可能让你死得更快?? ·  3 天前  
51好读  ›  专栏  ›  信息时代的犯罪侦查

微信账号和语音文件的结构再分析(2)

信息时代的犯罪侦查  · 公众号  ·  · 2018-06-24 13:45

正文

案例

随笔

知识

声音

其他


编者按

前几天的《 微信账号和语音文件的结构分析 》一文留下了几道思考题,本文尝试回答其中的一部分。当然,所有结论仍然基于逆向实证。 感谢热心读者的深入细致分析。



问题一、关于微信账号


这里提到的微信内部账号(UIN )有三种可能的结构:9位数、10位数、1个负号拼接10位数。


UIN记录在 /data/data/com.tencent.mm/shared_prefs/ 文件夹下的若干文件内,包括 com.tencent.mm_preferences.xml、app_brand_global_sp.xml 等。


例如:在system_config_prefs.xml文件里的


auth_info_key_prefs.xml文件里的


网上盛传的chrome://net-internals/#events抓包法也能得到UIN,通常与上述UIN相同,但只有两种可能的结构:9位数、10位数。如果10位数溢出了32位整型空间,就相当于“1个负号拼接10位数”的情况。


例如:数据包的UIN是233333333,实际的UIN是-1961633963(即233333333减去4294967296)。


接下来,如前文所述,“mm”直接拼接UIN ,算出MD5值后得到该账号的文件夹名称。例如:UIN是-1961633963时,MD5(mm-1961633963) = b883740d5f568c04e488befca16eed50。


问题二、微信语音文件夹的命名规则


前文已经介绍过了,微信的语音文件存储在“voice2”下的两层目录下,而这两层的目录名称非常奇怪,都是两位字符,如“voice\ 3d\27 \……”,既然如此," voice2”文件夹之下的二级目录名是如何选择的呢?




以这里的“ msg_480948061918919ac9300d9102.amr ”文件为例,只要把“msg_”去掉,对基本名称的剩余部分( 480948061918919ac9300d9102 )计算MD5值,得到 3d 27 8f649bece4ff979a26db4e50d147,取第1-2位为第一层目录名,第3-4位为第二层目录名,这个文件就在 /voice2/3d/27/ 文件夹下。




问题三、微信语音文件的命名规则



前文留下了一个思考题,这里的发送者标识“ 919ac93 ”是什么含义呢?


首先要明确,微信号包括 缺省微信号 自定义微信号 。缺省微信号通常以“wxid_”(个人号)或“gh_”(公众号)开头,就像身份证号一样。


当用户自行选择自定义微信号后,缺省微信号 不被删除或覆盖 。而发送者标识就是 缺省微信号的MD5值的前7位 即使修改自定义微信号后也不变化


另外再说一句,保存头像时,得到的图片文件名称也由 缺省微信号的MD5值构成 例如:大家可以关注一下“新闻哥”这个订阅号做个实验。(非推荐行为)




该公众号的缺省微信号是 gh_faa35168f414







请到「今天看啥」查看全文