虾米音乐文件绝对地址解析

Xiami.com的文件地址居然也加密了,现在写AmbiencePlayer不得不去解密,于是在这里分享一下Xiami音乐的地址加密算法。

首先用Chrome捕获请求,发现对于音乐:
http://www.xiami.com/song/1769402049
这样的会自动请求:
http://www.xiami.com/widget/xml-single/sid/1769402049
这个地址获取详情。

得到的还是一个XML文件(太常见了):

<?xml version="1.0" encoding="utf-8"?>
<trackList>
 <track>
  <width>257</width>
  <height>33</height>
  <song_name><![CDATA[14.ガラスのくつ]]></song_name>
  <song_id>1769402050</song_id>
  <user_id></user_id>
  <album_id>371119</album_id>
  <album_cover><![CDATA[http://img.xiami.com/./images/album/img59/23259/3711191268102416_3.jpg]]></album_cover>
  <album_name><![CDATA[Nitroplus Best Songs Collection]]></album_name>
  <artist_id>23259</artist_id>
  <artist_name><![CDATA[いとうかなこ]]></artist_name>
  <location><![CDATA[8h2xt912653.tFi%%959E5mt%a22%2457pp2mFF2%%%%3%Fi23F55553f.371EEEEA1n21412_1%.e51%7%18]]></location>
  <widgetCode><![CDATA[<embed src="http://www.xiami.com/widget/_1769402050/singlePlayer.swf" type="application/x-shockwave-flash" width="257" height="33" wmode="transparent"></embed>]]></widgetCode>
 </track>
</trackList>

找到了~~~
下面就该进行解析了…初看好恶心的地址,于是反编译了一下Flash代码,然后看懂了:

8h2xt912653.tFi%%959E5mt%a22%2457pp2mFF2%%%%3%Fi23F55553f.371EEEEA1n21412_1%.e51%7%18

其实就是

8 //类似凯撒方阵的列数(以下列8字符)
h2xt912653.
tFi%%959E5m
t%a22%2457p
p2mFF2%%%%3
%Fi23F55553
3f.371EEEE
A1n21412_1
%.e51%7%18

//注意上面每列都是8个字符

把上面的东西竖起来读就是地址近似物了:

http%3A%2F%2Ff1.xiami.net%2F23259%2F371119%2F14%252%5E17694%5E2%5E5%5E_1357%5E18.mp33

然后把这个urldecode一下:

http://f1.xiami.net/23259/371119/14%2^17694^2^5^_1357^18.mp33

还没结束,把所有的 ^ 替换为 0,把最后一个字符删掉:

http://f1.xiami.net/23259/371119/14%201769402050_1357018.mp3

呼!解析成功!庆祝一下,吃根冰棍去。

36 Comments

  1. 8 //类似凯撒方阵的列数(以下列8字符)
    h2xt912653.
    tFi%%959E5m
    t%a22%2457p
    p2mFF2%%%%3
    %Fi23F55553
    3f.371EEEE
    A1n21412_1
    %.e51%7%18

    //注意上面每列都是8个字符

    LZ 没有好好数数啊

    回复

    1. 我这里是用的Action Script Viewer(ASV)。不过搜索的话应该能找到不少Flash反编译器,而且都不错。似乎还有个Sothink的(名字记不太清了)效果也很好。

      回复

        1. 不太理解你的意思。小段代码是指哪部分?
          加密的地址来自XML文件,解密地址的方法是通过反编译SWF根据源代码研究出来的。

          回复

  2. […] 由于本人比较喜欢听歌,寂寞的时候就想下载一些或者挂个外链什么的。但是百度很多歌都搜不到。虾米虽然是个不错的网站,也有很多资源。但是下载需要虾币。如果不想花钱怎么办?然后我就google了一下,找到了这个网页http://kanoha.org/2011/08/30/xiami-absolute-address/,看了里面的介绍,一步一步折腾起来。在这个网页中可以看到这段话: […]

    回复

发表回复

您的电子邮箱地址不会被公开。