【前端破解系列之一】一分钟教你破解下载虾米音乐

虾米音乐网站上有很多高品质的音乐和精心组织的精选集,但普通用户只能试听,不能下载,下载的话需要使用“米”,这个“米”除了极少数的新手任务可以获得之外,基本上都要靠付费来购买,很多人没有网银或者没有银行卡,支付相当不方便。对于普通用户,既想把音乐放到手机或者mp3里欣赏,又不愿反复折腾的话,如何找到下载链接把歌曲下载下来呢?让我们来研究一下虾米音乐网站的代码逻辑。

如下图:打开一个精选集:

 精选集页面

        我们来看一下这个网页的源码,找到第一首歌曲Iris and Jasper –Hans Zimmer部分的html代码,搜索Iris andJasper即可:

 html源码

        懂html的可以看看,其实也不需要理解,这段代码大体上看来点击试听的时候,调用了一个js函数play,参数有三个,很明显第一个是歌曲id,后面两个不知道是做什么用,但这没有什么影响,我们来继续看看play函数的代码:

 

 

        这段js代码非常简单,懂点程序的人都能看出来,最后的结果就是:/song/playlist/id/+第一个参数+/object_name/+第二个参数+/object_id/+第三个参数,第一个参数是百分百有的,第二个如果不存在,则为default,第三个如果不存在,则为0。因为没有特殊字符,所以那个escape函数的作用可以忽略。然后前面再拼上虾米的网址http://www.xiami.com就得到一个url链接:http://www.xiami.com/song/playlist/id/2562206/object_name/collect/object_id/11060023,这么简单?这就是歌曲链接?No,显然没那么容易,我们把这个地址复制到浏览器访问一下看看返回什么内容:

<?xml version="1.0" encoding="utf-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/"><trackList><track><title><![CDATA[Iris and Jasper]]></title><song_id>2562206</song_id><album_id>217126</album_id><album_name><![CDATA[The Holiday (Original Motion Picture Soundtrack)]]></album_name><object_id>11060023</object_id><object_name>collect</object_name><insert_type>1</insert_type><background>#eeeeee</background><grade>-1</grade><artist><![CDATA[Hans Zimmer]]></artist><location>8h2xt622265tFi%%6%5_Et%a22%2643p2mFF252%5%Fi32F225.3f.51%%%EmA1n575552p%.e41EEE%3</location><ms>http://f1.xiami.net</ms><lyric>http://www.xiami.com/song/lyrictxt/id/2562206</lyric><pic>http://img.xiami.com/images/album/img46/35546/2171261295514339_1.jpg</pic></track></trackList><type>collect</type><type_id>11060023</type_id><clearlist></clearlist>
</playlist>

 

        是一段xml,看起来这才是歌曲的真正信息,刚才的url就是用歌曲id等来请求歌曲信息的方法,从xml里可以看到歌曲信息和播放背景歌词地址专辑图片等内容。那么歌曲的下载地址到底在哪里呢?xml里并没有歌曲的url。仔细看xml,有个location看着很可疑,看起来是一段加密过的内容,怎么解密呢?这段解密代码在js里是找不到。

但是找不到如何破解呢?不用担心,网上已经有相应的破解方法,地址:http://www.winhex32.com/xiami/

 

 

        把location里的那段加密后的字符串复制到输入框里,输入验证码,点击尝试解码,ok,看到了吗?完整的mp3下载链接就出来了,直接复制到浏览器或者迅雷里下载吧~~

 

上了的不算分析的分析就讲完了,我们再来回顾一下该过程:

1.打开一个歌曲的页面,查看源文件

2.ctrl+f打开搜索框,输入“play(”,不包括引号,就可以找到每一首歌曲的play函数,记下函数的几个参数。

3.根据上面提到的规则,http://www.xiami.com/song/playlist/id/+第一个参数+/object_name/+第二个参数+/object_id/+第三个参数,得到歌曲信息的获取路径,比如http://www.xiami.com/song/playlist/id/2562206/object_name/collect/object_id/11060023,用浏览器打开这个路径,得到一段xml文本内容。

4.把xml里的location段里的加密内容复制,打开www.winhex32.com/xiami,粘贴进去,输入验证码解密,就可以得到mp3文件的下载路径了。

 

对于这个Location内部的解密算法,如果大家有兴趣,以后再继续发帖分析。

本博文仅供技术交流,请勿用于商业目的,否则后果自负。如果有兴趣的话欢迎跟帖讨论。

转载于:https://www.cnblogs.com/pkuoliver/archive/2012/05/09/crack-xiami-music.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434535.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络编程常用接口的内核实现----sys_listen()

listen()函数仅在TCP服务器端调用&#xff0c;它做两个事情&#xff1a;将套接字转换到LISTEN状态和设置套接上的最大连接队列。listen()对应的内核实现为sys_listen()&#xff0c;下面开始对其实现作具体的分析。 一、sys_listen()函数 sys_listen()的源码实现及分析如下所示…

linux查看启动配置文件内容,Linux开机启动项的查看和设置方法总结

一、查看开机自启项1.Centos7自启项查看方式从Centos6的chkconfig改为&#xff1a;systemctl list-unit-files2.用grep过滤查看&#xff0c;比如&#xff1a;查看启动项&#xff1a;systemctl list-unit-files | grep enable查看sshd服务自启动情况&#xff1a;systemctl list-…

XP Embedded:不同的用户使用不同的外壳程序

摘要&#xff1a; 能够使应用程序成为外壳程序是 Windows XP Embedded 的关键功能之一。设备可以在自定义外壳程序而不是 Explorer 外壳程序中启动&#xff0c;这提供了两个好处。第一个好处是系统能够更快地启动。Explorer 外壳程序需要花费大量的时间来加载所有支持库和文件…

linux系统中 库分为静态库和,Linux系统中“动态库”和“静态库”那点事儿-【经典好文】...

今天我们主要来说说Linux系统下基于动态库(.so)和静态(.a)的程序那些猫腻。在这之前&#xff0c;我们需要了解一下源代码到可执行程序之间到底发生了什么神奇而美妙的事情。在linux操作系统中&#xff0c;普遍使用ELF格式作为可执行程序或者程序生成过程中的中间格式。ELF(Exec…

linux上的壁纸软件下载,Ubuntu 17.10上安装开源壁纸工具Wallch 4.0

在Ubuntu 17.04上安装WallchWallch是一款免费的开源通用壁纸更换器&#xff0c;用户可以在设置的时间更改桌面背景图片。它会在桌面上更改并显示随机图片或维基百科的当天图片。它还具有一个实时地球Living Earth壁纸&#xff0c;每30分钟更换桌面背景&#xff0c;以显示阳光和…

linux find显示文件的基本信息,命令find搜索文件,命令stat查看文件的详细信息

命令stat命令语法stat(选项)(参数)命令描述命令stat用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。命令选项-L&#xff1a;支持符号连接&#xff1b;-f&#xff1a;显示文件系统状态而非文件状态&#xff1b;-t&#xff1a;以简洁方式输出信息&#…

Linux rpm 命令参数使用详解[介绍和应用]

RPM是RedHat Package Manager&#xff08;RedHat软件包管理工具&#xff09;类似Windows里面的“添加/删除程序” rpm 执行安装包 二进制包&#xff08;Binary&#xff09;以及源代码包&#xff08;Source&#xff09;两种。二进制包可以直接安装在计算机中&#xff0c;而源代…

Ubuntu10.10的网络配置

有一阵子着实对Ubuntu的网络配置很迷惑&#xff0c;耐下心来仔细上网找了找&#xff0c;有点小心得&#xff0c;总结一下。 先说下大概的配置过程&#xff0c;再去细究一些情况。 一、配置大概分三类&#xff1a;通过配置文件配置、通过命令配置、通过图形化的网络连接菜单配置…

DllMain详解

1 DLL的进入/退出函数 1.1 DllMain简介 跟exe有个main或者WinMain入口函数一样&#xff0c;DLL也有一个入口函数&#xff0c;就是DllMain。以“DllMain”为关键字&#xff0c;来看看MSDN帮助文档怎么介绍这个函数的。 The DllMain function is an optional method of entr…

linux安装tensorflow教程,真正从零开始,TensorFlow详细安装入门图文教程!

在正式开始之前我想说&#xff1a;一定要注意窗口给出的提示(英文)。在实际操作中可能会碰到各种各样的问题&#xff0c;但常见的问题其实都可以根据它的报错信息找到原因&#xff0c;只要上网搜一搜相应的信息就能解决&#xff0c;甚至它自己就会给出解决的建议。如果你发现你…

引路蜂地图API:Gis.Navigation包定义

本包提供了路口到路口实时导航API&#xff0c;从地图服务器返回的路径信息含有文字和路径的地理坐标信息&#xff0c;类NavigationEngine根据路径和当前坐标实现实时导航。它内部含用三个工作线程&#xff1a; Location Monitor 实时监视当前位置坐标是否偏离路径&#xff0c;如…

有些垃圾网站转载都不会

有时会看到我的文章被转载&#xff0c;只要保留作者信息和原文链接&#xff0c;并且忠实于原文都是很欢迎的。这里的忠实原文应该是最基本的了吧&#xff0c;转载嘛&#xff0c;最简单的也就是拷贝粘贴吧&#xff0c;可发现有些垃圾网站&#xff0c;连拷贝粘贴都做不好&#xf…

Linux部署动态网页,linux构建动态WEB服务器安装篇

linux构建动态WEB服务器安装篇发布时间&#xff1a;2008-09-18 08:50:01 作者&#xff1a;佚名 我要评论基本配置安装web服务器:httpd-2.X.X先优化吧根据CPU设置变量#export CFLAGS”-O2 -marchpentium4 -pipe” && CXXFLAGS$CFLAGS“-march”选项表示为特定的cpu…

sip事务与对话

一个事务通常由一个请求开始&#xff0c;由一个响应码&#xff08;a response code&#xff09;结束。VIA头域中的branch参数用来标识一个事务。 对话可以是开始于一个INVITE事务&#xff0c;结束于一个BYE事务。一个对话由FROM&#xff0c;TO和CALL&#xff0d;ID头域的结合所…

px、dp和sp,这些单位有什么区别?

相信每个Android新手都会遇到这个问题&#xff0c;希望这篇帖子能让你不再纠结。 px&#xff1a; 即像素&#xff0c;1px代表屏幕上一个物理的像素点&#xff1b; px单位不被建议使用&#xff0c;因为同样100px的图片&#xff0c;在不同手机上显示的实际大小可能不同&#x…

linux 例行性工作,Linux例行性工作

Linux例行性工作Linux:例行性工作什么是例行性工作&#xff1f;其实对于例行性工作而言就是在当前环境下周期性进行的必须工作。在Linux下&#xff0c;有2种例行性工作种类&#xff1a;一种是突发性&#xff0c;做完以后就没有的那种at:at是个可以处理仅执行一次就结束调度的命…

linux 下搭建yolov3错误,Ubuntu20.04+cuda11.1+yolo3 目标检测 深度学习系统 真正从0搭建 包含各类可能遇到的错误...

本篇文章包含内容较多&#xff0c;请参照目录浏览,在每一部分结束或,有该部分可能遇到的问题0、开始本教程前请先备份电脑中的重要文件&#xff01;&#xff01;&#xff01;&#xff01;一、Ubuntu20.04 搭建更详细的内容请参照该博客&#xff1a;https://www.cnblogs.com/mas…

SystemVerilog例子---traffic light

SystemVerilog例子---traffic light module traffic_light(output logic green_light,yellow_light,red_light,input sensor,input [15:0] green_downcnt,input [15:0] yellow_downcnt,input clock,input resetN); parameter R_BIT 0,G_BIT 1,Y_BIT 2;enum logic [2:0] {RE…

报表中的Excel操作之Aspose.Cells(Excel模板)

本篇中将简单记录下Aspose.Cells这个强大的Excel操作组件。这个组件的强大之处&#xff0c;就不多说&#xff0c;对于我们的报表总是会有导出Excel的处理&#xff0c;如果你使用微软Excel的com组件&#xff0c;那么对于简单的操作还行&#xff0c;但是多余复杂的模板&#xff0…

在飞音G801上运行OpenWRT+Asterisk

上篇文章介绍了如何在华硕RT-N11建立小型的SIP Server&#xff0c;本篇文章介绍将Asterisk移植到更为强大的VOIP网关G801上。G801是北京飞音时代的无线VoIP网关产品&#xff0c;在韩国SKT等运营商中广泛采用。G801支持802.11n 2T2R的无线路由&#xff0c;1WAN 4LAN的以太网&am…