Mac下虾米音乐很早就有人做出过强制VIP的爆破方法,据称是可以下载320K的高质量音乐,但是我下载来仔细听后,发现根本不是320K,192K左右差不多了,可能虾米还有远程验证吧。

但是我用Appcleaner居然没有找到虾米的缓存文件夹,所以我就开GDB跟了一下,writeTofile上下断就好了,后来发现虾米的东西都放在这里~/library/下有几个offlinesongsofftemp这三个文件夹比较可疑,于是用HD开了找下函数名,一晚上后发现虾米会把加密后的文件放在offline,加密方式其实是ZIP文件加密码,但是密钥好像是歌曲名加一个字符串后的Md5,不过加解密方式好像是被虾米改过了?我直接用对应的方法发现无法解压。

但是后来转念一想,既然NSURL上po出来的是一段MP3的URL,所以首次下载来的应该是正常未加密的文件,那么为了加密虾米肯定会调用密码获取函数passwordForsong好像是。在上面下断。

离线完后,一会儿就在上面断点上断下来了,在下面ret上在下断,c,si,几次之后就到了ZipFile加密的地方了,我偷懒直接把函数pop就改成了ret,再运行一次后,发现所有文件都会在offtemp里面了,把后缀直接改成MP3就可以播放了,不过没有歌曲名字,没有专辑图片,顺便看看文件大小就知道肯定不是320K了。

下次准备分析的是iOS下的虾米,主要把isNewPhone的方法改改,那样就可以不用删plist就可以无限获取2个月VIP了,运气好的话还能改到电脑上来。