某网站音频地址逆向分析

本文最后更新于:2025年6月30日 下午

目标网站:aHR0cDovL3d3dy55dWV0aW5nYmEuY24vYm9vay9kZXRhaWwvM2ExYWI4YjUtOTUwZi0yOTFhLTBkNzctMzlkZDJkMjg1ZDgzLzA=

参考文章

要获取网络上免费站的音视频真实地址的方法其实有很多,比如直接用IDman插件嗅探,或者抓包缓存等。但是这只是单个音频地址的获取方法,而且不一定有效,比如音频地址使用异步动态加载,甚至是加密包装过的,使用嗅探工具不一定能嗅探到。如果想要批量获取,就必须了解这个音频真实地址的产生过程,这个过程就是解析(逆向)其算法过程。

反调试

可以发现右键和F12都打开不了调试页面,以及提前打开进入也会关闭,估计加了反调试。

下载这个脚本,控制台防检测

然后在脚本中添加,重启浏览器,提前打开调试界面,访问目标网站(不过好像播放图片那里可以右键打开😅)

逆向

首先在页面里搜索mp3或者m4a等常用音频后缀,如果能搜到,那就最好,可以直接了解音频地址的格式。这里发现地址是有规律的,但是音频名称是一串像是哈希字符样式的字符串,还是需要分析加解密的流程才能批量爬取。

在源代码中搜索音频后缀无果,说明可能是通过接口得到的音频地址,查看网络选项卡。

发现就两个请求,一个ting-with-efi,一个create。经过分析ting-with-efi请求才是关键的,所以下面只分析这个。

查看调用链,打上断点

直接到initGetData这个方法上,这个方法明显看出是请求发送出的地方,传入的e值可能是章节的id,去源代码中搜索可以验证。

调试到这个方法的末尾,查看值发现efi应该就是接口返回的加密的音频地址,往下进入initAudio方法

在赋值给r这一步得到了真实的地址,接着分析vs.d(ef,n,pad)这个方法,一眼看着也很像加解密相关的,因为有pad这个填充标识在。传入的n是音频的idi是时间转化出来的字符串

解密函数,AES解密,CBC模式,密钥通过gk方法生成,iv通过gi方法生成,都经过Base64编码,解密即可得到

到这里就分析完了,很简单,写一个完整的爬取demo,仅供参考


某网站音频地址逆向分析
https://3xsh0re.github.io/2025/05/23/某听书网站音频地址逆向/
作者
3xsh0re
发布于
2025年5月23日
许可协议