•
從使用者的角度解開 shaka-packager 加密影片
3 分鐘閱讀 •
免責聲明
此筆記沒有任何「破解」要素
我只是說明如何用你手上的鑰匙把鎖打開,沒有鑰匙的人打不開鎖
前言
寫得很簡略,是給未來的我讀的筆記
看不懂不要問我,我懶得答
在開始以前請確認:
- 你可以在網頁中播放影片
- 影片使用 shaka-packager 技術加密
- 你能取得 License Server 的 Clear Key Response 內容
Before Start: 如何得知影片是以 shaka-packager 加密
取得加解密軟體
下載 shaka-packager
https://github.com/shaka-project/shaka-packager/releases/latest
取得被加密的影片
在網頁中 F12 → Network,找到要解密的影片檔案
本例中是 1_1063.webm
將 webm 檔案下載: 右鍵 → Open in new tab
圖中有好幾個 webm 是因為 206 partial content download
事實上它是在載同一個檔案的不同部份
取得 Clear Key
在下載檔案的附近尋找 Clear Key request
本例網頁是使用 Shaka-player,它問回來的 Clear Key 格式如下
重點是其中的 Key ID (kid) 和 Key (k)
將 ClearKey 轉換為 hex 格式
使用 online base64 to hex converter 將 Clear Key 轉換為 32 碼的 hex 格式,Key Id 和 Key 都要轉換
解碼使用 Base64URL,詳見 wiki
使用 packager 解密影片
將指令中的
{EncryptedWebmFile}
替換為加密影片路徑{HexKeyID}
、{HexKey}
替換為前步驟轉出的 32 碼 Hex 字串{stream_selector}
替換為audio
,video
,text
,視影片內容而定
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}