Open w2468624269 opened 6 years ago
我要是说这个靠人品你会不会来打我:no_mouth:
我的出发点很简单:如果我是网易的工程师,我会怎么做
第一,解密的方法应该是简单并且能够高效执行的,否则听歌的时候解析数据会占用很多时间,造成卡顿
第二,加密解密都应该很容易执行,这样也能节省服务器成本
第三,解密过程,不能依靠全局数据(元数据除外),因为缓冲了多少就会解析多少,如果依赖未缓冲的部分那就做不到了
然后加上我的两个发现:
同一首歌没有加密前的缓存文件和加密后的缓存文件,两者的大小完全一致
音乐文件中,0x00出现的频率是相当高的;缓存文件中,0xA3出现的频率是相当高的
于是一个很自然的设想就出来了:0x00对应0xA3
不过这个是如何对应的我并不知道。于是,两个试验:A. 0xA3 = (0x00 + 0xA3) % 0xFF; B. 0xA3 = 0x00 XOR 0xA3。
B就被试验出来了。再想想0xA3=163和网易的关系,emmm,很有道理。(一个小时解决)
所以我觉得,当时真是人品爆炸。
@lchloride 1小时试出加密密码 厉害了 我的哥
厉害厉害,主要想请教的是你是怎么知道网易的加密方式,能大概说说吗,谢谢