概要
本篇文章主要介绍了某音乐平台播放页面的js逆向思路。
抓包分析
选取一首歌曲,进入到播放页面,打开浏览器的开发者模式,点击播放按钮,进入到XHR选项,可以看到有一个https://music.163.com/weapi/song/enhance/player/url/v1?csrf_token=链接,响应值中包含了本首歌曲的链接,将歌曲链接放到浏览器中打开,可以直接播放。

查看请求链接的请求头和请求的表单数据,未发现请求头中包含有加密字段,而在请求的表单数据中有两个加密参数params和encSecKey,下面将对这两个参数进行分析。

逆向分析
我们先搜索加密参数,这里搜索的是encSecKey,发现有多个结果,挨个查看搜索结果,在第一个搜索结果中就找到了参数位置

在参数位置打上断点,再次点击播放按钮,js在断点处断开,说明参数生成的位置是正确的,在参数上方展示有本次请求的url(表单数据生成方式相同),若url与歌曲生成的url(https://music.163.com/weapi/song/enhance/player/url/v1?csrf_token=)不同,则继续执行,直到链接相同。

查看bVc8U的值,发现包含了我们想要的结果,而这个参数就在上一行生成
var bVc8U = window.asrsea(JSON.stringify(i3x), bsF5K(["流泪", "强"]), bsF5K(St0x.md), bsF5K(["爱心", "女孩", "惊恐", "大笑"]));
e3x.data = j3x.cr4v({
params: bVc8U.encText,
encSecKey: bVc8U.encSecKey
})
查看window.asrsea方法,跳转到了d方法,此方法有四个参数,分别对应了window.asrsea的四个参数,在控制台中打印这四个值,经过多次测试,发现后三个参数为固定值,而第一个参数是一个json字符串,其内的ids为当前页面的歌曲id:



将d方法复制出来,将四个参数先固定,然后运行代码,报错a方法未找到:
function d(d, e, f, g) {
var h = {

最低0.47元/天 解锁文章
585

被折叠的 条评论
为什么被折叠?



