IMusicPlayer网络音乐播放器_协议分析(二)

1.应用程序信息

通过浏览器访问https://m.y.qq.com/,界面如下图所示:

IMusicPlayer网络音乐播放器_协议分析(二)

应用程序名称:哈希值

MD5值:无

SHA1值:无

简单功能介绍:主要功能有个页面,推荐,排行榜,搜索等

网页相关信息:wap网页

2.分析环境及工具

系统环境:win10 64位

工具:chrome浏览器(开发者工具)

3.分析目标

分析其中的搜索功能,获取网站的搜索协议,并实现对应的搜索功能。

4.交互流程分析

首先打开Google Chrome并打开隐藏窗口,修改代理模式为Nexus5,如下图所示:

IMusicPlayer网络音乐播放器_协议分析(二)

在地址栏输入网址:https://m.y.qq.com/#search,如下图所示:

IMusicPlayer网络音乐播放器_协议分析(二)

在搜索栏输入关键字进行搜索,得到如下url和解析参数

IMusicPlayer网络音乐播放器_协议分析(二)

IMusicPlayer网络音乐播放器_协议分析(二)

IMusicPlayer网络音乐播放器_协议分析(二)

IMusicPlayer网络音乐播放器_协议分析(二)

通过两次输入对比发现仅仅只有w参数和_参数不同,其他参数固定,其中w为搜索的关键字,需要进行转码,_为本地时间戳(经过验证没有此参数也可以访问),这个可以通过函数在本地进行计算得到,那么遍可以很方便的构造出搜索的url。以下便是通过该url所返回的部分json数据

IMusicPlayer网络音乐播放器_协议分析(二)

可以使用json在线解析工具进行解析,可以从中提取出有用信息,专辑的ID,歌曲名,专辑名等信息

IMusicPlayer网络音乐播放器_协议分析(二)

选中搜索出来的一首歌曲,将跳转到播放页面(有些歌曲版权原因不会跳转),会返回相关页面,访问的url为:

IMusicPlayer网络音乐播放器_协议分析(二)

IMusicPlayer网络音乐播放器_协议分析(二)

IMusicPlayer网络音乐播放器_协议分析(二)

IMusicPlayer网络音乐播放器_协议分析(二)

其中,songmid可以通过解析json文件获取,通过对比发现其他参数不变,因此可以构造访问服务器的url。之后服务器将返回一个html文件,其中包含了歌曲的资源链接

IMusicPlayer网络音乐播放器_协议分析(二)

再向服务器发送获取歌词的url:

IMusicPlayer网络音乐播放器_协议分析(二)

IMusicPlayer网络音乐播放器_协议分析(二)

此处的musicid =songid ,songtype = type其他固定,便可以访问歌词资源

5.代码验证

接下来就是编写代码验证。

根据分析,确定大致开发步骤:

1.通过jsoup获取网页连接

2.构造访问服务器的url,获取返回的json数据

3.解析出json数据中的songmid值,构造访问服务器的url

4.获取返回的html数据,再通过jsoup解析html其中包含的歌曲资源url访问资源

5.构造歌词url,访问歌词资源

6.源码参考

http://download.****.NET/detail/u011337769/9865014

7.测试效果图:

IMusicPlayer网络音乐播放器_协议分析(二)

8.总结

从此次分析中体会到了,分析需要有耐心,不断的挖掘和观察,找到有用信息,层层递进。