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
呼!解析成功!庆祝一下,吃根冰棍去。
很是不错的分享哟。。
我想用VB来写,,这个东西怎么用VB来实现呢
VB的话比较复杂吧,整个网络设施。不过纯粹解析应该不难,按照这个算法开相应的数组然后按照字符解析就可以。。。
方法抄袭,
不知您是如何得到的这个错误的结论。
跟博主开玩笑呢,莫要见怪
。。。。。。
好强大~然后搞的想用这个去拿虾米的音乐放到自己的音乐墙里了~
好厉害,感谢分享!话说现在好像更新了,最后一个3木有了的说。而且好像不验证Referer了?反正我直接在网页上播放是木有问题滴~
我在#偷揉电台#听到了『残酷な天使のテーゼ (English Version)』这首歌,偷揉电台可以边听歌变发射弹幕哟~ 你也来试试吧 @卜卜口 http://t.cn/zlVvsXW
好评~ 不过 HTML5 版本貌似有点BUG,我这边音乐放不出来。。。
那个只能在windows phone iphone 安卓上用QAQ 桌面浏览器无论如何都会发送来源信息
原来如此。。。
8 //类似凯撒方阵的列数(以下列8字符)
h2xt912653.
tFi%%959E5m
t%a22%2457p
p2mFF2%%%%3
%Fi23F55553
3f.371EEEE
A1n21412_1
%.e51%7%18
//注意上面每列都是8个字符
LZ 没有好好数数啊
注意是每一列,不是每一行。。。
那个location怎么去编译??
这么搞笑的算法。。真是愚乐大众哈!~
不过谢谢LZ的分享,让我一搜就找到了,省去了看AS的时间~
其实大众大概看不到吧 <_<
不过确实蛮好玩的。。。
请问楼主,用什么工具反编译那段代码呢?
我这里是用的Action Script Viewer(ASV)。不过搜索的话应该能找到不少Flash反编译器,而且都不错。似乎还有个Sothink的(名字记不太清了)效果也很好。
ASV,sothink我都试了下,但好像只能反编译swf文件,对于提取出来的这一小段代码如何反编译呢?要先把它写成swf文件还是如何呢?
不太理解你的意思。小段代码是指哪部分?
加密的地址来自XML文件,解密地址的方法是通过反编译SWF根据源代码研究出来的。
搞定了,我一开始错解了你的意思,sorry…
厉害
[…] 由于本人比较喜欢听歌,寂寞的时候就想下载一些或者挂个外链什么的。但是百度很多歌都搜不到。虾米虽然是个不错的网站,也有很多资源。但是下载需要虾币。如果不想花钱怎么办?然后我就google了一下,找到了这个网页http://kanoha.org/2011/08/30/xiami-absolute-address/,看了里面的介绍,一步一步折腾起来。在这个网页中可以看到这段话: […]
现在好像不行了呢。对吗。
现在应该还可以,不过虾米不仅加密地址,还检查REFERER。解密地址还是不能外链之类的= =。哎。。。
刚刚试了一下,:kaka|29:MAXTHON3可以直接看到资源地址啊.
是可以看到,这只是给播放器动态解析用的…
下载的话方法就多了
:kaka|07:(表情好可怕…)
:kaka|19:好复杂的样子,我通常都是在百度上搜索,直接解析地址出来.
:kaka|03:撒花~技术流,mark
ps.为什么在RSS里最后看到播放器,这里看不到呢?
:kaka|36:RSS看到播放器是什么概念…?
http://min.us/mS7ChMa7c
pic
原来你是RSS订阅的这里…= =
(我没订阅过自己…貌似是阅读器的功能吧[Google Reader?],自动提取音乐什么的)
是Google Reader,真神奇。:kaka|04: