從使用者的角度解開 shaka-packager 加密影片

3 分鐘閱讀

免責聲明

此筆記沒有任何「破解」要素
我只是說明如何用你手上的鑰匙把鎖打開,沒有鑰匙的人打不開鎖

Made with Flux.1-dev

前言

寫得很簡略,是給未來的我讀的筆記
看不懂不要問我,我懶得答

在開始以前請確認:

Before Start: 如何得知影片是以 shaka-packager 加密

hex

取得加解密軟體

下載 shaka-packager

https://github.com/shaka-project/shaka-packager/releases/latest

取得被加密的影片

在網頁中 F12 → Network,找到要解密的影片檔案

本例中是 1_1063.webm
將 webm 檔案下載: 右鍵 → Open in new tab

206

圖中有好幾個 webm 是因為 206 partial content download
事實上它是在載同一個檔案的不同部份

取得 Clear Key

在下載檔案的附近尋找 Clear Key request

本例網頁是使用 Shaka-player,它問回來的 Clear Key 格式如下

重點是其中的 Key ID (kid) 和 Key (k)

clear key request

將 ClearKey 轉換為 hex 格式

使用 online base64 to hex converter 將 Clear Key 轉換為 32 碼的 hex 格式,Key Id 和 Key 都要轉換

解碼使用 Base64URL,詳見 wiki

online base64 to hex converter

使用 packager 解密影片

將指令中的

stream_selector (stream): Required field with value ‘audio’, ‘video’, ‘text’ or stream number (zero based). ref

packager.exe input={EncryptedWebmFile},output=out.webm,stream_selector={stream_selector} --enable_raw_key_decryption --keys key_id={HexKeyID}:key={HexKey}

command

參考資料