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. 对比React Native、dcloud、LuaView三个框架技术(内部)
  2. 【小白学习keras教程】十、三种Model Selection方法:k-fold cross-validation,GridSearchCV和RandomizedSearchCV
  3. 【数据结构】——排序算法系列总结
  4. 图解机器学习 github_使用Github和Cloudflare建立网站的图解指南
  5. 数据告诉你,抖音是怎么在半年之内逆袭的
  6. 边缘计算是流行词还是风口?开发者怎样选开源项目?
  7. SAP License:SAP Solution Manager中的常用命令
  8. ArcGIS水文分析实战教程(13)流域提取流程
  9. X264_最简单的视频编码实现(YUV420编码H264)
  10. sqlite3 小记
  11. 【转载】古诗背串了,可是会出大事的哟
  12. windows 8授权概览
  13. 携手网易打造世界杯主题房 YUNIK HOTEL玩转兴趣社交新场景
  14. 卸载企业版360 含密码
  15. 虚拟机安装Windows7系统(亲测超详细)
  16. Qt创建设计师自定义控件(Qt Designer自定义控件)
  17. 全球 500 亿条数据被 Elasticsearch 勒索者删除
  18. 测试用例的思路---矿泉水瓶
  19. 中国石油大学(北京)-《 油气藏经营管理》第二阶段在线作业
  20. 中国电信189邮箱手机推送功能评测

热门文章

  1. Android图片加载库:最全面解析Glide用法
  2. 【运筹学】对偶理论 : 对称理论示例 ( 对称理论 | 标准的原问题对偶问题 | 原问题目标函数求最小值示例 | 求对偶技巧 ) ★
  3. 数据组合 ;歌曲分词
  4. Linux学习——I2C-MPU6050驱动移植记录
  5. vue知识点—2(适配,vant,阿里图库)
  6. 复旦大学计算机是工学还是理学,浙大和复旦PK,谁的理科更强,你怎么看?
  7. css自动延伸颜色,纯css3代码实现自动变换炫酷的网站背景颜色
  8. 离合器组件的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  9. 爱奇艺2016在线笔试
  10. games101 光线追踪