某网站 DRM Clear Key 密钥获取

查看 13|回复 1
作者:xifangczy   
网址: aHR0cHM6Ly93d3cubWlzc2V2YW4uY29tL3NvdW5kL3BsYXllcj9pZD0xMTU5MTc0NA==
网站的新内容开始使用drm对媒体进行保护
通过猫抓获得媒体文件 无法正常播放


QQ图片20250914020808.png (130.58 KB, 下载次数: 2)
下载附件
2025-9-14 02:08 上传

mp4info 工具查看文件获信息
[Plain Text] 纯文本查看 复制代码
[ENCRYPTED]      Coding:         enca
      Scheme Type:    cbcs
      Scheme Version: 65536
      Scheme URI:
看来是有drm的存在。
直接F12 查看网络 按照习惯 从m4s文件开始往上看。


QQ图片20250914021700.png (72.03 KB, 下载次数: 1)
下载附件
2025-9-14 02:17 上传

bilidrm文件内容


QQ图片20250914021825.png (70.03 KB, 下载次数: 2)
下载附件
2025-9-14 02:19 上传

有公钥和bilidrm文件 说明是明文drm 这还有救 应该能找到key
有兴趣的可以去看看相关文档
https://www.w3.org/TR/encrypted-media-2/#clear-key
查看公钥的调用堆栈


QQ图片20250914023245.png (45.9 KB, 下载次数: 2)
下载附件
2025-9-14 02:33 上传

就不多废话了
第一个是 包装了一层fetch的函数
第二个 _callee2$ 才是真正的fetch调用
点击_callee2$ 进入到一个getKeyInfo函数中


QQ图片20250914023942.png (200.64 KB, 下载次数: 1)
下载附件
2025-9-14 02:40 上传

代码甚至还有注释很容易读,也可以丢给AI 让AI解释。
case 2: 通过公钥生成SPC
case 6: 通过SPC 请求许可CKC
case 12: 通过CKC获得解密KEY
在case 12的return地方下断点


QQ图片20250914024523.png (54.93 KB, 下载次数: 2)
下载附件
2025-9-14 02:45 上传

到此,解密媒体所需的 kid 和 key 都有了
实际上kid的值 使用mp4dump在加密的媒体文件中可以找到,命令示例:
[Bash shell] 纯文本查看 复制代码(.\mp4dump.exe a.mp4 | findstr /i "KID") -replace '.*\[(.*)\].*', '$1' -replace '\s', ''
但代码直接给出来了那就省了这一步。
如果使用ffmpeg解密 可以省略找kid这一步
[Bash shell] 纯文本查看 复制代码ffmpeg -decryption_key  -i "a.mp4" output.mp4
key还需要从base64转为hex 这里让AI写一个函数就行
[JavaScript] 纯文本查看 复制代码
function base64ToHexString(base64) {
    const binaryData = atob(base64);
    let hexString = '';
    for (let i = 0; i
获得 5b60d63f89a0452985f23b5302a161e0
使用 mp4decrypt工具
[Bash shell] 纯文本查看 复制代码mp4decrypt --key a4f8dc6f83df4de0ab3faa4562f7bddd:5b60d63f89a0452985f23b5302a161e0 _000010z6hpy6k4wal27ha70pqgahr9b-128k.mp4 a.mp4
生成 a.mp4文件 成功播放。
至于biliDRMSDKModule的分析,如何解密的以及wasm内容这里就不深入进行了。可以参考本论坛对 biliDRM 研究的其他帖子。

下载次数, 代码

yinuo2012   

这是一个神奇的网站
您需要登录后才可以回帖 登录 | 立即注册

返回顶部