1、关于微信账号

这里提到的微信内部账号(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文件里的

<int name="default_uin" value="2333333333" />

auth_info_key_prefs.xml文件里的

<int name="_auth_uin" value="2333333333" />

网上盛传的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。

2、微信语音文件夹的命名规则

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

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

3、微信语音文件的命名规则

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

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

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

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

那么,应该对gh_faa35168f414计算MD5值,其头像图片将被保存为hdImg_aaf7752298514c9eeae37e7610181061.jpg,并且其发送者标识是“aaf7752”,即:缺省微信号的md5值,取前面七位。

4、待解决的新问题

1、发送者标识为什么只取7位呢?

笔者猜测是为了压缩文件名、节省数据空间。容易想到,这样做可能导致哈希冲突。对于最常见的缺省微信号格式(wxid_14位小写字母和数字),理论上有36^14种可能(6.14094E+21),而7位哈希只有16^7种可能(2.68435E+8)。

当然在操作中,可以在生成wxid时就丢弃冲突的wxid,直到微信用户数接近2.7亿。然而,马化腾在今年全国人大“代表通道”上透露,微信全球月使用活跃用户数在春节突破十亿大关。那么,怎样判别用户的唯一性?

2、语音文件名称里的发送时间由手机时间决定,不依赖于服务器的标准时间。

那么,怎样确定时间的正确性?

「微信帐号amp;语音文件」结构分析-amr文件相关推荐

  1. python登录微信pc版_腾讯TIM iOS版2.5.6重大更新:新增支持微信帐号登录、语音进度条...

    今天,腾讯QQ办公简洁版TIM iOS版迎来 v2.5.6 重大更新,看齐"TIM 3.0 PC版",本次更新新增微信帐号登录方式,语音消息支持暂停和进度拖动,新增好友消息免打扰功 ...

  2. 腾讯:微信号能修改,微信帐号不允许修改

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 2020 年了,微信号终于可以修改了. 但是干完坏事,改个微信号就能溜之大吉? 你要知道微信号.微信帐号,是不一样的. 近期腾讯微信官方带 ...

  3. 「微信群合影2.3.0」- 新增高清头像

    「微信群合影qunheying.com」- 一键生成微信全家福. 「 微信群合影 2.3.0 」版本更新: 新增高清头像显示 新增春节主题 高清头像显示 收到一些用户的反馈,关于下载后生成的图片放大后 ...

  4. centos7.9安装了微信,但腾讯公司不允许在Linux里登录微信帐号,白搞了半天。也有可能是那个微信安装包的问题吧

    centos7.9安装了微信,但腾讯公司不允许在Linux里登录微信帐号,白搞了半天.也有可能是那个微信安装包的问题吧. https://blog.csdn.net/weixin_42300866/a ...

  5. 「微信群合影2.4.0」- 微信网页版账号不能登录问题解决办法

    「微信群合影qunheying.com」- 一键生成微信全家福. 「 微信群合影 2.4.0 」版本更新:  支持微信网页版不能登录账号生成群合影 在一键生成全家福的过程中,有一些用户是不能登录微信网 ...

  6. 「微信群合影2.7.6」- 新增月高级会员功能(扫码登录、批量头像下载)

    「微信群合影qunheying.com」- 一键生成微信全家福. 「 微信群合影 2.7.6 」版本更新: 增加月高级会员功能,支持微信网页版不能登录账号生成群合影, 通过扫码登录获取 增加批量下载头 ...

  7. 「微信群合影2.5.0」- 微信网页版账号不能登录解决办法,扫码登录

    「微信群合影qunheying.com」- 一键生成微信全家福 「 微信群合影 2.5.0 」版本更新: 支持微信网页版不能登录账号生成群合影, 通过扫码登录获取 在一键生成全家福的过程中,有一些用户 ...

  8. 王者怎么看微信以前玩过的服务器,王者荣耀如何查看微信帐号在那个区玩过

    王者荣耀如何查看微信帐号在那个区玩过相信有很多小伙伴对此存在疑惑,接下来就跟着IEfans小编一起了解一下查看微信帐号在那个区玩过的方法说明! 方法/步骤分享: 1.打开手机[微信]. 2.切换到[发 ...

  9. 上墙抽奖php代码,微信帐号开发:独立PHP微信上墙|微信墙|微信抽奖完美版(PHP源码)...

    [实例简介] 微信帐号开发:独立PHP微信上墙|微信墙|微信抽奖完美版(PHP源码) [实例截图] [核心代码] WeChat_Wall └── WeChat_Wall 至尊版 V4.21 ├── c ...

最新文章

  1. 用 go 实现跨平台 Autoit/AutoHotkey 和按键精灵功能示例代码
  2. Linux-gate.so.1的含义[ZZ]
  3. try catch异常后会执行后面的代码吗_JVM异常处理最强讲解
  4. springboot aop加载流程
  5. 0也显示曲线 mpchart_BenQ 明基专业摄影显示器SW270C开箱评测体验
  6. 房天下数据爬取及简单数据分析
  7. C#删除字符串倒数第几个字符后的所有字符串
  8. oracle存储过程中返回一个程序集
  9. 服务器搬迁方案_服务器数据迁移方案
  10. 匹配查询(Match)
  11. 银行核心系统之假期表
  12. 名帖32 东汉 隶书《韩仁铭碑》
  13. 抓包工具以及如何看抓包信息
  14. 广域网 —— HDLC协议
  15. 免费获得筹码分布接口交易数据,Tushare的使用方法
  16. 快应用开发1--编译官方的代码并在手机上运行rpk文件(Windows系统上)
  17. 清华大学计算机系保送,2018清华大学保送生拟录取名单公布
  18. 电工学复习【3】-- 正弦交流电路
  19. 产品助理day4及简评京东淘宝美团等筛选实现方式的优缺点
  20. 在windows上配置VScode支持ARM GCC开发环境

热门文章

  1. 为什么说外国的软件全部都是垃圾?
  2. 在excel中怎么快速定位到想要的行?
  3. MPU9250的基本性能参数
  4. 小猫爪:i.MX RT1050学习笔记22-eLCDIF
  5. The disadvantages of an elite education精英教育的弊端
  6. 东软通企:“互联网+”下的企业互联整合与重构
  7. Linux运维入门快捷命令设置说明大全
  8. websocket心跳链接代码_websocket心跳的实现(包括全部代码)
  9. ASP.NET中数据库应用-身份证信息查询器
  10. CAN ID 中的J1939-PGN