【JS逆向】破解第三方Bilibili視頻下載加密策略(二)

以前寫過一篇 【JS逆向】破解第三方B站視頻下載加密策略,這篇寫的是另外一個功能相似的網站。此次的網站和上次那個相比,免費API只能生成清晰度爲360P的視頻,可是加密策略還挺好玩的,因此仍是整理出來發一下。

網址:api

https://api.spapi.cn

兩次POST請求

在Network標籤頁中查看請求,能夠看到有連續的兩次POST請求圖片第一次POST請求的參數:圖片參數爲B站視頻連接、時間戳、一個加密參數sign響應爲一個url,應該是指加密後的B站視頻連接:圖片第二次POST請求的參數:圖片參數爲第一次請求的響應url、時間戳、和第一次不一樣的加密參數signusernameotype不用管,都是固定的。響應爲加密的imagevideo地址圖片ide

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文件中的,可是過一段時間後,這個值又會發生變化,因此用起來是不太方便的。並且這個網站生成的視頻質量比較低,我也就沒有興趣繼續搞他了。並且這個網站有點不友好,源碼中能看到這麼一個函數:圖片加密

相關文章
相關標籤/搜索