逆向网址:网易云歌曲
说明:该网站的歌曲的链接是加密的 如图
话不多说直接上案例
1.找到音频链接的生成接口
我们检索该加密后的值 0000196adc365ab0fa90a308443121(当然vuutv的值也可以)
这串值肯定是在别的地方传过来的,我们要找到该接口
这里我们就可以确定 音频链接是在这叫 v1 的接口响应出来的
2.分析接口
接下来只需要分析该接口 如图
加密值有三个:
1.csrf_token 分析几次可知是常数(对每个用户来说是唯一的)
2.params
3.encSecKey
下面两个肯定都是要逆向的
3.找到数据加密位置并逆向
找到数据加密位置方法:直接检索关键词 params和encSecKey 都可以 如图
继续分析
var bYE2x = window.asrsea(JSON.stringify(i0x), bjp3x(["流泪", "强"]), bjp3x(zy5D.md), bjp3x(["爱心", "女孩", "惊恐", "大笑"]));
一个一个分析,可以知道 iox中变的就只有id 而后面的三个都是常数
再就是分析加密函数 window.asrsea 我们进入函数内部 简单分析 如图
可以发现他们需要的函数都封装在一个自执行方法中,所以我们直接将这自执行方法扣下来
然后运行会报 ReferenceError: CryptoJS is not defined 这个错误
他的意思是:CryptoJS未定义
这里有两个解决办法:
1.到前端去找CryptoJS的定义位置
2.用nodejs中的crypto-js自己实现(经测试没问题)
如图
接下来我们继续运行,缺啥补啥就行,一共差不多30多个函数
结果没问题
4.通过py实现
我们要先获取到歌名和歌的id
然后获取到对应的加密参数 最后发送请求获取歌曲二进制数据即可
ok 没问题 以上就是全部 感谢观看
代码用途
本代码仅供学习、研究和交流使用,禁止用于任何商业用途或非法用途。使用者应对其行为负责,作者不对代码的滥用或不当使用承担任何责任。