第一篇文章终于来啦😆
网易云音乐web版获取歌曲评论时,参数在前端有加密的。打开http://music.163.com/#/song?id=418603077,打开控制台。选择Network,勾选上Preserve log
点击下一页,找到对应请求,鼠标移动到对应请求的Iintiator列,会看到该请求的函数调用栈,点击第一个函数。如下图

以上操作后会进入到一个js文件中,代码一般都经过压缩。选择代码库左下角大括号格式化代码。如下图

点击之后会看到格式化后的代码,此时会有一行代码被黄色标记。该代码便是发出http请求的代码,点击行号打上断点,打上断点后BreakPoints会有记录,我这里是3516行。如下图

打上断点后,回过来操作网页。继续选择下一页,这时候会网页会暂停在上一步打的断点处,这时候就可以看到完整的函数调用栈了(call stack),这里的调用深度有20多层,Scope.Local这里是每个函数里面的变量值。如下图。

根据之前http请求发出的参数,来找到对应参数在哪个变量中。网易云音乐这里请求携带了两个参数,参数名是params和encSecKey。根据这两个参数可以轻易找到数据在e3x对象中。然后一直跟踪这个对象的这两个值,来确定是在哪一个函数里面添加的。然后就可以很容易的找到是在哪一个函数里面加密的,因为x3x.bo3x函数有这两个参数,而它下一个匿名函数没有这两个参数,所以就能确定这两个参数是在x3x.bo3x函数生成的,然后格式化当前代码。就可以轻易的看到是window.asrsea这个函数混淆加密的。如下图

文章转载自爬虫那点事,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




