闲来无事破译了sina的铃声下载系统

来源:互联网 发布:ubuntu搭建nginx php7 编辑:程序博客网 时间:2024/04/27 13:47

最近新换了个支持mp3播放和铃音的手机,自然要放多多的mp3来做铃音了。但是问题就出现了,如果要用mp3做铃音,就得截取其高潮部分,否则过门太长不适合做铃音(通常过门声都是很tiny的)。自己做挺麻烦的,要用截取软件来截取,然后用调音软件调高音调,总之不适合我这样的懒人……
没办法,网上找吧。
google一下“mp3铃声下载”,看了看mp3铃音下载的网站挺多的,随便打开一个都有很多铃声。但是,靠,居然都是付费下载到手机,更讨厌的是不提供下载链接。晕死,找了半天都是这样的网站,看来想吃口免费饭挺难的嘛。
这些网站都提供试听的功能,能不能直接下载呢?既然铃声都出来了,那么源文件路径必定在页面中存在。查看源文件,发现并不是想象的那么简单,这些网站都是隐藏了真实路径的。不过,自然还是有办法:

一、精彩手机铃声图片下载网http://www.crimusic.com.cn/mp3.html

打开试听页源文件,先找<object>标签看看页面中是否调用了媒体播放器,很遗憾没有。那么可以断定媒体播放器在另外一个页面,而这个页面很可能是嵌套在试听页面的<iframe>标签里面的,搜索"iframe",果然有iframe页面。iframe标签的src为空值,而下面正好定义了src="ShowMedia.aspx?fileid="+m(q["fileid"])+"&type="+t(q["type"])+"&"+uinfo;这里面的fileid和type是两个获取并传递的参数。而仔细观察,试听链接都是javascript:send('xxxx','tx')之类的格式,如javascript:send('50061','tx')就是“希望”的链接。因此可以断定'50061','tx'则是传给其的参数试听页的参数,正好跟fileid和type相对应。
因此就生成了完整的src=ShowMedia.aspx?fileid=50061&type=tx&uinfo,跟试听页的根路径
http://u.lele.com/web/组成完整的播放页面路径http://u.lele.com/web/ShowMedia.aspx?fileid=50061&type=tx&uinfo
打开这个路径,哈哈,FileName='/upload/snd/20050902/20050902562580.wma',相对路径找到了,绝对路径就是
http://u.lele.com/upload/snd/20050902/20050902562580.wma
下载这个网站的mp3铃声的步骤就是打开aspx文件获取文件相对路径,形成绝对路径下载。

二、新浪网mp3铃声站http://bf.sina.com.cn/sinarc_php/ringlist.php?aid=1322&from=464

打开试听页源文件,先找object标签,呵呵,是有的,name="wmplayer",但是没有filename这个属性,看来是通过程序赋予。下一步搜索“wmplayer”,看看哪里给它添加了filename属性。
搜索结果:document.wmplayer.FileName=s;晕,还有一个s变量来传递,哦,s的定义在上面几行处,不用搜了。
var s=path+src_dir+"/"+sub_dir+"/"+id+".wma";呵呵,sina的codemaker还挺爱绕弯的,一个变量生出4个变量来了,分别是“path”、“src_dir”、“sub_dir”和id,".wma"证明这的确是路径的生成式。
往楼上看,呵呵,有三个变量就在楼上定义的:
var path="
http://image2.sina.com.cn/sms/sinarc/preview/"
src_dir=Math.floor(id/1000000);
sub_dir=Math.floor(id/1000);
路径就替换成了
http://image2.sina.com.cn/sms/sinarc/preview/Math.floor(id/1000000)/Math.floor(id/1000)/id.wma
这样就只有一个未知的变量id了。往下看,id就在下面的initplayer函数里面定义着呢:
var id=document.sndfm.id.value;搜索“sndfm”,发现这就是页面的表单名称。表单里面有什么呢:
<input type="hidden" name=id value="28102430">呵呵一个名称叫id的隐藏域,value是28102430,刚好跟试听链接传递的参数吻合。
这样路径就替换成了
http://image2.sina.com.cn/sms/sinarc/preview/Math.floor(28102430/1000000)/Math.floor(28102430/1000)/28102430.wma
接下来要运算math.floor函数,这个函数是截取整数的函数,并不四舍五入。
真实的路径明朗了:
http://image2.sina.com.cn/sms/sinarc/preview/28/28102/28102430.wma
下载这个网站的mp3铃声的步骤就是根据id值直接运算math.floor函数生成绝对路径就是了。


其他铃声下载网站应该是万变不离其中吧,Rincle这里给大家引个路,大家感兴趣的话也去试试。^_^,请勿拍砖。

原创粉丝点击