1、微信账户信息。
这里提到的微信内部帐户(UIN)有三种可能的结构:9位、10位、负1位和10位。
UIN位于/data/data文件夹下的com .写入多个文件,包括、a等。
示例:文件中的
int name=' default _ uin ' value=' 23333333 '/
Au文件
int name=' _ auth _ uin ' value=' 23333333 '/
在互联网上广泛传播的Chrome ://Net-Internals/# Events炮台法也可以得到UIN,通常与上述UIN相同,但可能的结构只有9位、10位。如果10位数超过32位整数空间,则相当于“1减10位数”。
例如,数据包的UIN为23333333,实际UIN为-1961633963(即23333333减去4294967296)。
接下来,如上所述,“mm”直接连接UIN,计算MD5值,然后获得该帐户的文件夹名称。范例:如果UIN为-1961633963,则MD5(mm-1961633963)=b 883740 D5 f568 c 04 e 488 be FCA 16ee d50。
2、微信语音文件夹命名惯例
如上所述,微信语音文件存储在“语音2”下的两层目录中,这两层目录的名称非常奇怪,都是两个字母(例如“语音\ 3d \ 27 \”,name,“语音”
以此处的“M”文件为例,只需减去“msg_”即可计算出基本名称剩馀部分(480948061918919ac9300d9102)的MD5值,从而得到3D 278f 642
3,微信语音文件命名惯例
前面还有一个事故问题,这里发件人显示“919ac93”意味着什么?
首先,要明确,微信号包括基本微信号和自定义微信号。基本微信号通常以“wxid_”(个人号码)或“gh_”(公共号码)开头,就像身份证号码一样。
用户选择自定义微信号时,默认微信号不会被删除或复盖。发送者ID是基本微信号的MD5值的前7位,在修改用户定义的微信号后不会改变。
另外,在保存化身时,生成的图片文件名也由基本微信号的MD5值组成。例如,可以查看“新闻型”的订单号进行实验。(非推荐动作)
然后必须为gh_faa35168f414计算MD5值。头像图片被保存,发送者ID为“aaf7752”。也就是基本微信号的MD5值,前7位。
4、需要解决的新问题
1、发件人id为什么只获得第七名?
笔者推测是为了压缩文件名,节省数据空间。这样很容易认为会发生哈希冲突。对于最常见的基本微信号格式(wxid_14位小写和数字),理论上有36 14种可能性(6.14094E 21),7位散列只有16 7种可能性(2.68435E 8)。
当然,在微信用户数接近2.7亿人之前,生成wxid时可以丢弃冲突的wxid。然而,马化腾在今年全国人民代表大会“代表通道”上表示,微信全球月度用户人数在春节突破了10亿人。那么,如何辨别用户的唯一性呢?
2.语音文件名的传输时间由手机时间决定,不依赖于服务器的标准时间。
那么,如何确定时间的准确性呢?