这一下午闲的,记一次下载突破

[ 2014-11-11 ]

多年前一伪文青给我介绍了”邻居的耳朵(http://ear.duomi.com/)“,一个原创音乐电台网站,一直很喜欢里面的有声电台。
之前在某个网盘下过一些,特别喜欢在人少的林荫小道开着车,感叹着有声电台里面的形形色色,悲欢离合。
车里的音乐和有声电台都快听烂了,趁着下午没事,打算更新点。

问题来了…
以前“邻居的耳朵”虽然没有提供下载连接,但是可以通过多米下载,但是现在多米已经不提供了,里面仅有的一些都不知道多少年前的了。

但是哥是技术型文青 ,第一次突破开始。。。
分析网页源代码,发现是通过Audio Player flash插件来播放的,但是源地址已经加密,soundFile里就是加密的后的源地址。

其实这种加密在我看来完全没什么作用,简单的抓包即可获取真实源地址,严重强迫症的我不打算抓包,我要写个解密函数,方便以后使用,首先下载网页上的播放插件player.swf,通过SWFDecompiler反编译出fla文件,顺藤摸瓜,很容易就找到了_sixBitDecode解密函数

但这是as脚本的解密函数,没法直接用,还好,所有的语言都大同小异,依样画葫芦,写了个php的解密文件

well done!成功解密出源地址


这下简单了,直接开迅雷下载。
问题又来了,迅雷完全不动,根本无法下载,直接浏览器试了下,XX你大爷的。。。

看来管理员是做了防盗链,好吧,你有张良计我有过墙梯,host伪造ear.duomi.com,指到本地的iis服务器

通过简单的测试,发现源地址的域只要是duomi.com,都可以访问 stream0.kxt.fm,看来管理员做了http的referer。
第二次突破开始,祭出哥的宝器–Delphi,用pascal又重写了一遍解密函数。
PS:写了这么多年的delphi才发现pascal的for循环原来是不可以直接指定步长的,只能婉转的表达步长

关键的来了,红框部分为伪造的referer,这样就可以欺骗对方的服务器了

搞定!!!来个效果图!!!

顺带着完善了下,直接填写页面地址,会自动解析下载连接,自动命名文件,直接下载。 有兴趣的PM我。