宝刀不老:Flash歌曲播放网站MP3地址隐藏机制完全破解
晚上,小落给推荐了一首非常好听的Folk名谣,说是网上很难找到的。:)给了一个地址:http://www.neocha.com/naivete/music!1657.html
听了之后,很是喜欢这种风格。然后baidu了一个下载地址发给她,说是这个flash的MP3的地址,后来非要让我如何找到的….冂冏囧….只好拾起尘封了n久的hack技术…
首先查看Page Source,找到相关的一段:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="280" height="277" id="musicMovie" align="middle">
<param name="movie"
value="/-/flash/music_player_dq.v28.swf?id=1657&un=naivete">
<param name="quality" value="high">
<param name="wmode" value="transparent">
<embed src="/-/flash/music_player_dq.v28.swf?id=1657&un=naivete" quality="high"
wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash" width="280" height="277"
name="musicMovie">
</embed>
</object>
</object>
初步猜想,恩,MP3的相关的信息保存在一个xml文件里面,只需要找到这个xml,然后找到里面的mp3的对应地址就ok了。这也是类似的网站经常使用的技术。。。
根据上面的object的信息,拼起来了这个地址然后打开:
http://www.neocha.com/-/flash/music_player_dq.v28.swf?id=1657&un=naivete
恩,这个是一个flash,初步思路是获取到这个flash,然后反编译一下,看看是读取的哪个地方的MP3的URL就ok了。
抄起迅雷,添加下载信息,直接填上这个链接,把这个flash下载下来。下载之后得到这个文件名的东西:music_player_dq.widget.v26.swf
抄起闪客精灵,反编译之…
然后查看一共21个动作的Script脚本。。。
功夫不负有心人,在名称为sprite64的动作脚本中发现了比较敏感的东西:
function loadXMl()
{
myxml = new com.makeit.xmlClass("music_playlist.xml");
var _l2 = new Object();
function xmlComplete(albumArr, musicArray, parameterArr)
{
com.makeit.musicDocument.thisObj.albumArr = albumArr.slice();
com.makeit.musicDocument.thisObj.musicArray = musicArray.slice();
com.makeit.musicDocument.thisObj.parameterObj = parameterArr;
com.makeit.musicDocument.thisObj.setFunc();
} // End of the function
myxml.addListener(albumArr);
} // End of the function
啊哈,Load Xml。而且xml文件的名称都有了,恩,立马蹭蹭蹭的构造了几个xml的路径:
http://www.neocha.com/naivete/music_playlist.xml
http://www.neocha.com/-/flash/music_playlist.xml
http://www.neocha.com/-/xml/music_playlist.xml
….
啥都没有。。sad。。不泄馁,继续寻寻觅觅,终于,在这个动作的下一个动作里面发现了感兴趣的东西:
function loadXml()
{
static function onLoad(success)
{
if (success)
{
com.makeit.xmlClass.thisObj.parseAlbum_fun();
} // end if
} // End of the function
if (_root.id == undefined)
{
id = "3378";
} // end if
if (_root.un == undefined)
{
un = "banana_monkey";
} // end if
myxml.load("http://www.neocha.com/-/xml/music_player.jsp?id=" + _root.id +
"&un=" + _root.un + "&a=" + Math.random() * 9999);
} // End of the function
看到这里俺就开始得意了,胜利就在眼前了,迅速构造一地址:
http://www.neocha.com/-/xml/music_player.jsp?id=3378&un= banana_monkey&a=9999
使用IE打开去,结果很差很失望,打不开,找不到这个地址。恩,转变思路,这个jsp文件应该是负责后台的某些逻辑处理的,关掉IE,迅雷上。
果然,出现重大转机,下载得到的文件打开如下:
<?xml version='1.0' encoding='UTF-8'?>
<music-player>
<albums>
<album>
<album-id>0</album-id>
<album-title>未分类 </album-title> <album-picture>http://www.neocha.com/-/res/banana_monkey/20080414131625686093_t.jpg</album-picture>
<album-link>http://www.neocha.com/banana_monkey/record!0.html</album-link>
<musics>
<music>
<music-id>3378</music-id>
<music-title>Baby in Red (Lovely Version)</music-title> <music-picture>http://www.neocha.com/-/res/banana_monkey/20080414131625686093_o.jpg</music-picture> <music-file>http://www1.neocha.com:90/-/res/banana_monkey/20080414131625702094.mp3</music-file> <music-link>http://www.neocha.com/banana_monkey/music!3378.html</music-link>
<music-artist>Banana Monkey </music-artist>
<music-album>未分类 </music-album>
<music-corp> </music-corp>
<music-publish> </music-publish>
<music-genres>Rock摇滚,8-Bit8比特 </music-genres>
<music-comment-cnt>0</music-comment-cnt> <music-comment-url>http://www.neocha.com/banana_monkey/music!3378.html#comment</music-comment-url>
<music-favorite-cnt>0</music-favorite-cnt> <music-favorite-url>http://www.neocha.com/banana_monkey/music!3378.html</music-favorite-url>
<music-vote-cnt>0</music-vote-cnt> <music-vote-url>http://www.neocha.com/banana_monkey/music!3378.html</music-vote-url>
<music-favorited>2</music-favorited>
</music>
</musics>
</album>
</albums>
<username>banana_monkey</username>
<user-url> </user-url>
<user-picture> </user-picture>
<default-album-id>0</default-album-id>
<!-- 默认播放的专辑 -->
<auto-start>1</auto-start>
<!-- 1自动 0 手动 播放-->
<color1>#000000</color1>
<color2>#999999</color2>
<color3>#FFFF00</color3>
<color4>#FFFF00</color4>
</music-player>
<script src="http://www.neocha.com/-/js/urchin.js" type="text/javascript"></script>
<script type="text/javascript">
_uacct = "UA-828246-1";
urchinTracker();
</script>
看到没,看到MP3这个后缀的时候,第一感觉找到了。
不过很遗憾,下载了这首MP3之后发现,是一首Rock…
感觉世界一下灭了。。这个时候决定转变思路。。
抄起嗅探工具,好多年前的winsock也不在身边了,唉,只好问liunice要一个ie的插件,装了起来….
看来又要分析IE的数据包了…
安装插件的时候,仔细的看了下载的这个文件的格式,忽然灵光一现,music标签下面的不就是动作script里面的好多的参数的么。。豁然开朗了:
这个文件就是上面的那个jsp文件根据参数读取数据库动态生成的flash的MP3文件地址的xml配置文件。
找到了key Point:
<music-link>http://www.neocha.com/banana_monkey/music!3378.html</music-link>
打开这个链接,链接的格式是如此的熟悉,打开之后,出现了刚才的那个下载的熟悉的banana的Rock,oh yeah!
搞定!
回到开头的最开始安小落MM发的URL:
http://www.neocha.com/naivete/music!1657.html
根据这个URL来构造这首MP3:
http://www.neocha.com/-/xml/music_player.jsp?id=3378&un= banana_monkey&a=9999
两个地址相加,得到最终地址:
http://www.neocha.com/-/xml/music_player.jsp?id=1657&un=naivete&a=9999
迅雷下载这个URL,在<music-file>标签找到了想要的东西:
<music-file>http://www1.neocha.com:90/-/res/naivete/20071124214646754207.mp3</music-file>
呵呵,剩下的事情,就是永久的拥有这首好听的“穿格子衬衫的teddy熊”了。
恩,还有,破解和这个网站整个的flash播放音乐隐藏真实地址是如何实现的。。不过这不是主要目的。。
lbq1221119 5/24/2008 11:26:19 PM 首发lbq1221119.cnblogs.com
posted on 2008-05-24 23:36 lbq1221119 阅读(6771) 评论(57) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述