aHR0cHM6Ly9tdXNpYy4xNjMuY29tLyMvc29uZz9pZD0yMTQ0MjA5MDk43
打开网址点击下一页可以看到加密参数有两个下个
全局搜索encSecKey找到加密位置在
var bVi0x = window.asrsea(JSON.stringify(i1x), bse6Y(["流泪", "强"]), bse6Y(Qu9l.md), bse6Y(["爱心", "女孩", "惊恐", "大笑"]));window.asrsea(JSON.stringify(i1x), bse6Y(["流泪", "强"]), bse6Y(Qu9l.md), bse6Y(["爱心", "女孩", "惊恐", "大笑"]));
bVi0x 这个就是加密结果,通过window.asrsea这个方法加密得来,看看他们传递参数是什么东东
i1x,这个就是一个数据信息参数 ,bse6Y其他都是通过这个方法生成的,跟进去这个方法看看
可以看到这个方法会调用j1x.bh1x,这个j1x又是通过c1x("nej.u")这个得来,c1x = NEJ.P又是通过这个得来
window=global;
var bse6Y = function (cxX2x) {
var m1x = [];
var c1x = NEJ.P
var j1x = c1x("nej.u")
j1x.bh1x(cxX2x, function (cxW2x) {
m1x.push(Qu9l.emj[cxW2x])
});
return m1x.join("")
};
i1x = {
"rid": "R_SO_4_2144209098",
"threadId": "R_SO_4_2144209098",
"pageNo": "1",
"pageSize": "20",
"cursor": "1715008995051",
"offset": "0",
"orderType": "1",
"csrf_token": ""
}
var bVi0x = window.asrsea(JSON.stringify(i1x), bse6Y(["流泪", "强"]), bse6Y(Qu9l.md), bse6Y(["爱心", "女孩", "惊恐", "大笑"]));
console.log(bVi0x)
写成这样看看提示什么东东,提示这个东东没用NEJ.P,跟进去看看这个怎么来的,发现是个自执行,遇到这种直接全扣下来再看看提示什么
提示这个东东不是个方法,我们上网址看看,这是个啥
里面装着一堆方法,那肯定是我们少扣代码了
进去发现又是个自执行,还是把所有扣下来看看提示啥
提示我们location这个下面的href没有定义,字符串切割的时候报错了
复制到网站补上
又提示我们document没有,补一个document={}
document.createElement
提示我们createElement这个不是个方法,因为他没有去校验里面具体的东西我们直接补空方法就好像这样
window=global;
location = {};
document = {};
document.createElement = function (){};
location.href = 'https://music.163.com/#/song?id=2144209098';
补完发现还是缺少方法,跟进去后面就是缺少直接复制下来就好了
最后出值
最后数据也是可以正常请求数据的
本期就到这了,后面更多环绕着补环境讲