网易云音乐JS逆向&Python爬虫&网易云逆向

文章声明

本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与文章作者无关,若有侵权,请联系我立即删除!

概要

- 该篇文章是基于网易云音乐评论的分析
- (歌曲评论案例: 网易云音乐 搜索 蜃楼)
- 用到的工具 360浏览器

逆向目标

请求参数 params,encSecKey

开始整活

抓包

打开F12 选择XHR请求 定位到搜索数据包

在这里插入图片描述

参数定位及分析

  • 直接搜索关键词,这里推荐搜索encSecKey因为这个词出现的地方大概率是加密的位置

    在这里插入图片描述

  • 搜索发现在很多js文件中都有该关键字,这个时候就要根据js文件名去猜测大概率是哪一个,大部分js文件名包含core的里面都会存在加密点(别问我怎么知道的,因为遇到过…哈哈哈)

  • 很幸运当前案例就是这样,进入core.js搜索encSecKey, 把每个出现该关键词的位置都打上断点,然后进行网页操作触发评论请求,最终程序断到了这里
    在这里插入图片描述

  • 可以看到我们需要的两个加密参数(params, encSecKey)都在一起,而这两个参数都是由bKL0x对象下属性的值分别赋值的,再往上看,可以发现bKL0x对象是由window.asrsea函数的返回值得来的,我这里处理一下

var a = JSON.stringify(i1x)
var b = bvj1x(["流泪", "强"])
var c = bvj1x(Rj3x.md)
var d = bvj1x(["爱心", "女孩", <
### 网易云音乐 JavaScript 逆向工程爬虫实现 对于一些网站,特别是像网易云音乐这样的平台,为了防止数据被抓取,通常会对请求进行加密处理。针对这种情况,可以通过JavaScript逆向工程来解析其加密逻辑并模拟合法请求。 #### 分析前端代码 首先需要抓包工具(如Fiddler或Chrome开发者工具)捕获网络请求,找到用于获取目标资源的实际API接口地址以及发送给服务器的数据结构。观察到这些请求往往包含了经过特殊编码后的参数字符串[^1]。 #### 解密算法还原 接着要研究客户端是如何构建这个签名串的。如果发现存在公开库(比如CryptoJS),则可以根据官方文档理解各个函数的作用,并尝试重现整个加解密过程。例如,在给出的例子中定义了一个名为`b`的方法用来执行AES对称加密操作: ```javascript function b(a, b) { var c = CryptoJS.enc.Utf8.parse(b), d = CryptoJS.enc.Utf8.parse(&quot;0102030405060708&quot;), e = CryptoJS.enc.Utf8.parse(a), f = CryptoJS.AES.encrypt(e, c, { iv: d, mode: CryptoJS.mode.CBC }); return f.toString() } ``` 此段脚本接收两个输入参数a和b,其中前者代表待加密明文而后者则是秘钥;内部还设定了固定的初始化向量IV作为第三个必要组件参与运算最终返回Base64格式的结果[^2]。 #### 构建自动化流程 一旦掌握了上述原理之后就可以利用Python等编程语言配合第三方模块轻松完成后续工作了。这里推荐使用PyCryptodome替代原生crypto因为兼容性和性能方面表现更佳。下面是一个简单的例子展示如何调用该功能: ```python from base64 import b64encode from Cryptodome.Cipher import AES import json def pad(s): # PKCS7填充方式 bs = AES.block_size padding = bs - len(s) % bs return s + chr(padding) * padding text = &quot;example&quot; key = &#39;your_secret_key&#39; iv = bytes([1, 2, 3, 4, 5, 6, 7, 8]) cipher = AES.new(key.encode(), AES.MODE_CBC, iv=iv) encrypted_text = cipher.encrypt(pad(text).encode()) print(b64encode(encrypted_text)) ``` 需要注意的是实际项目里可能涉及到更多复杂的场景,因此建议深入学习相关领域知识以便更好地解决问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dh_浩开玩笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值