IMusicPlayer网络音乐播放器_协议分析(二)
1.应用程序信息
通过浏览器访问https://m.y.qq.com/,界面如下图所示:
应用程序名称:哈希值
MD5值:无
SHA1值:无
简单功能介绍:主要功能有个页面,推荐,排行榜,搜索等
网页相关信息:wap网页
2.分析环境及工具
系统环境:win10 64位
工具:chrome浏览器(开发者工具)3.分析目标
分析其中的搜索功能,获取网站的搜索协议,并实现对应的搜索功能。
4.交互流程分析首先打开Google Chrome并打开隐藏窗口,修改代理模式为Nexus5,如下图所示:
在地址栏输入网址:https://m.y.qq.com/#search,如下图所示:
在搜索栏输入关键字进行搜索,得到如下url和解析参数
通过两次输入对比发现仅仅只有w参数和_参数不同,其他参数固定,其中w为搜索的关键字,需要进行转码,_为本地时间戳(经过验证没有此参数也可以访问),这个可以通过函数在本地进行计算得到,那么遍可以很方便的构造出搜索的url。以下便是通过该url所返回的部分json数据
可以使用json在线解析工具进行解析,可以从中提取出有用信息,专辑的ID,歌曲名,专辑名等信息
选中搜索出来的一首歌曲,将跳转到播放页面(有些歌曲版权原因不会跳转),会返回相关页面,访问的url为:
其中,songmid可以通过解析json文件获取,通过对比发现其他参数不变,因此可以构造访问服务器的url。之后服务器将返回一个html文件,其中包含了歌曲的资源链接
再向服务器发送获取歌词的url:
此处的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/98650147.测试效果图:
8.总结
从此次分析中体会到了,分析需要有耐心,不断的挖掘和观察,找到有用信息,层层递进。