js逆向-某音乐网站data参数

现在很多歌曲都要付费才能下载或播放,确实是很难受。对于爬虫工程师来说更是叔叔能忍,婶婶不能忍!!!
Alt
笔者无意间发现了一个免费的音乐网站,歌曲质量很高而且还是免费,感兴趣的同学可以自行收藏一下。

aHR0cDovL3Rvb2xzLmxpdW1pbmd5ZS5jbi9tdXNpYy8/cGFnZT1zZWFyY2hQYWdl

这个网站虽然说下载免费,但是我们想批量下载还要一个一个慢慢点,很麻烦。于是我默默的打开F12
Alt
随便以一首歌为例,点击搜索,如下图:

在这里插入图片描述
发现成功找到服务器返回的信息,再剩下的内容就是用爬虫去批量下载歌曲就大功告成了,简直完美。

进一步分析发现post请求中的data参数进行了加密。接下来又到了熟悉的逆向环节。

Alt

加密分析

搜索返回的数据包是xhr,source面板下添加一个xhr断点

在这里插入图片描述
继续点击下一页,发现果然断下来了。接下来在堆栈中寻找加密的地方就OK了。在这里插入图片描述
在这里插入图片描述
加密的地方还是比较简单的,可以看到使用encode函数进行加密,函数的参数是字符串的拼接
在这里插入图片描述
其中bdsearchType这三个值通过js获取
在这里插入图片描述
b是搜索的关键字,searchType是搜索的类型,d是页数初始值为1,不断进行翻页累加。
到这里就已经清楚逻辑了,接下来把代码扣下来然后使用python编写代码请求就没有问题了。

抠代码

在这里插入图片描述
打上断点,跟进encode函数中
在这里插入图片描述
把整个encode函数拿出来放在本地进行调试
在这里插入图片描述
提示缺少_0x5e84,本着缺啥补啥的原则,把_0x5e84找到拿到本地
在这里插入图片描述提示缺少_0x2494,继续把_0x2494找到扣下来。
在这里插入图片描述
提示location没有定义,定义一个就好了。
在这里插入图片描述
又继续报错,肯定是环境没有补好,
在这里插入图片描述
回到网页中找到该行看看是哪有出了问题
在这里插入图片描述
在这里插入图片描述
在location对象中补上这两个属性就不会报错了

window = global;
window.location = {
    host: "tools.liumingye.cn",
    protocol: "http:"
};

如果嫌补环境麻烦,可以直接copy location,多补总是不会错的

window = global;
window.location ={
    "ancestorOrigins": {},
    "href": "http://tools.liumingye.cn/music/?page=audioPage&type=migu&name=%E7%88%B1%E4%BD%A0",
    "origin": "http://tools.liumingye.cn",
    "protocol": "http:",
    "host": "tools.liumingye.cn",
    "hostname": "tools.liumingye.cn",
    "port": "",
    "pathname": "/music/",
    "search": "?page=audioPage&type=migu&name=%E7%88%B1%E4%BD%A0",
    "hash": ""
}

继续调试发现还是报错
在这里插入图片描述
md5没有定义,接着把md5扣出来就可以了。
在这里插入图片描述
大功告成!
接下来使用python请求,测试能否得到结果
在这里插入图片描述
这里就顺利的得到了结果,打开浏览器也是可以播放的
在这里插入图片描述

至此,整个分析就结束了。

本文仅供学习使用,切勿非法使用,如有侵权请联系作者及时删除!
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小红书是一个社交电商平台,为了保护用户的数据安全和防止恶意攻击,平台采用了加密算法对一些敏感参数进行加密处理,比如x-s和x-t。逆向工程是指通过对应用程序或代码的逆向分析和解析,以获取其内部的机制、算法或逻辑流程。 要逆向解密小红书的x-s和x-t参数,通常需要进行以下步骤: 1. 获取加密的js文件:首先,我们需要获取小红书的相关js文件,可以通过抓包工具或者浏览器开发者工具获取到与加密相关的js文件。 2. 分析加密算法:通过对js文件的逆向分析,我们可以寻找到相关的加密算法或函数。一般来说,加密参数通常会用到一些常见的加密算法,比如AES、RSA、MD5等。分析加密算法的关键是找到加密所使用的密钥和加密的处理过程。 3. 提取密钥和参数:一旦我们找到了加密算法和处理过程,接下来需要尝试提取出密钥和参数。这需要根据具体的算法和代码逻辑进行实际的代码分析和编写。 4. 解密参数:当我们获取到了正确的密钥和参数后,就可以编写相应的解密函数来对加密的x-s和x-t参数进行解密。 需要注意的是,逆向工程涉及对他人软件的解密和分析,这可能涉及到法律和道德等方面的问题,建议在合法和合规的前提下使用逆向工程技术。此外,小红书作为一款商业应用,也会不断更新其加密算法和安全机制,因此逆向解密可能随着时间的推移需要不断更新和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值