之前写过一篇【JS逆向】破解第三方B站视频下载加密策略,这篇写的是另一个功能类似的网站。这次的网站和上次那个相比,免费API只能生成清晰度为360P的视频,但是加密策略还挺好玩的,所以还是整理出来发一下。
网址:
https://api.spapi.cn
两次POST请求
在Network标签页中查看请求,可以看到有连续的两次POST请求
第一次POST请求的参数:
参数为B站视频链接、时间戳、一个加密参数 sign 响应为一个url,应该是指加密后的B站视频链接:
第二次POST请求的参数:
参数为第一次请求的响应url、时间戳、和第一次不同的加密参数 sign , username 和 otype 不用管,都是固定的。响应为加密的 image 和 video 地址
XHR断点
在sources中没有查找到 sign 的信息,在源码中也没有查找到,于是选择加一个 XHR断点 (从Initiator中找更快)。
然后就找到这个 jiexi 函数了:
第一个 sign 是这样生成的: var sign = captcha(timestamp + url + strings); 第二个 sign 是这样生成的: var sign = captcha(timestamp + key + url); captcha 函数在另一个JS文件中定义,但是这个JS文件也加了混淆,打不动,但是注意到 sign 恒为32位,就容易猜到它是一个 md5加密 。
随便找了一个在线加密的网站验证了一下,果然没错。这就叫化劲,四两拨千斤。
解密
解密得到视频地址:
hex2bin 是将十六进制字符串转换为二进制字符的函数,把对应的函数找出来即可。
坑
这个网站有一个坑,就是jiexi函数中的key是写死在JS文件中的,但是过一段时间后,这个值又会发生变化,所以用起来是不太方便的。而且这个网站生成的视频质量比较低,我也就没有兴趣继续搞他了。而且这个网站有点不友好,源码中能看到这么一个函数:
查看更多关于【JS逆向】破解第三方Bilibili视频下载加密策略(二)的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did164961