tree_fly 发表于 2025-11-8 02:01:05

班主任基本功交流活动-离线问题讨论

本帖最后由 tree_fly 于 2025-11-8 12:16 编辑



班主任基本功交流活动离线

声明:本文仅作技术探讨,不提供任何下载工具

0x1 分析m3u8
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-KEY:METHOD=AES-128,URI="https://ndvideo-key.ykt.eduyun.cn/v1/resource_keys/10d898dcb9c840fb978f1557e352dea7",IV=0x00000000000000000000000000000000
#EXTINF:10.000000,
63635d7a-351b-e800-456a-48638e10f79b-1920x1080-true-f8b3085d6e80b7664c5fc92528ddd774-c26181a843d441b28016c790ae7b1756-00000.ts

下载切片.ts文件,被加密无法播放,先直接获取Key数据返回错误:
curl https://ndvideo-key.ykt.eduyun.c ... 0fb978f1557e352dea7 | jq
{
"host_id": "ndvideo-key.ykt.eduyun.cn",
"request_id": "ndvideo-key-172.22.160.78^1761726406464^15724433",
"server_time": "2025-11-08T00:37:42.282+0800",
"code": "WAF/REQUIRE_ARGUMENT",
"message": "您输入的参数有误,请重新输入。",
"force_update": null,
"detail": "Message:Required String parameter 'nonce' is not present \r\n SourceAppName:ndvideo-key \r\n ",
"cause": null
}



0x2 分析Network数据
打开浏览器调试器,查看数据流,先实时获取 nonce:
curl https://ndvideo-key.ykt.eduyun.c ... f1557e352dea7/signs | jq
{
"nonce": "1762533708308:mgmdqx5d"
}

再二次请求获取加密字符串 key1:
https://ndvideo-key.ykt.eduyun.cn/v1/resource_keys/10d898dcb9c840fb978f1557e352dea7?nonce=1762532666576:2NfTtPRa&sign=7608cb125dd747bc

{
    "id": "10d898dcb9c840fb978f1557e352dea7",
    "key": "aJK5arEwg61sbw5bEKHngZAIlCnF2oUk8uq9Jm/Zngw="
}




注意这里sign参数。

尝试解密key1:
echo 'aJK5arEwg61sbw5bEKHngZAIlCnF2oUk8uq9Jm/Zngw=' | base64 -d | hexdump
0000000 9268 6ab9 30b1 ad83 6f6c 5b0e a110 81e7
0000010 0890 2994 dac5 2485 eaf2 26bd d96f 0c9e
0000020
Data数据长度0x20位,需要继续分析看看如何使用.


0x3 分析播放器videoplayer.mini.js源码
搜索字符串“Invalid HLS key”定位到key赋值位置:


刷新页面,断点处读取变量i内存值,使用语句:

[...new Uint8Array(i)].map(b => b.toString(16).padStart(2, '0')).join('')



0x4 验证key2正确性

PS:图片中的key2是另外一个视频的截图展示

openssl aes-128-cbc -d \                                                                           
-in e94af7e5-41cf-1b57-5354-8322a02a5e92-1920x1080-true-b4f3ab39d259c7aa7efd9f2673885576-5262810e42004a33bf4c13c287450f48-00004.ts \
-out 00004.ts -nosalt -K 65366366343934383964616234373636 -iv 00000000000000000000000000000000



0x5 分析sign的算法
参考字符串 '&sign=',快速定位到:


注意N的算法,稍后一起交给AI处理,N = (0,p.Pu)(E + _).toString().substring(0, 16)

0x6 分析key1 --> key2 解密过程


看到一些关键词 decrypt mode padding

0x7 AI出场分析算法, Thanks to Cursor & LLM




注意到视频vid在m3u8文件中可以提取,所以离线只需要视频地址即可。
AI写下载工具:


0x8 最后




2025-11-08
tree_fly/P.Y.G


wgz001 发表于 2025-11-8 09:52:42

表哥一直iOS,666

不破不立 发表于 2025-11-8 10:04:03

编程的尽头是AI

fomaper 发表于 2025-11-8 11:00:18

感谢发布原创作品,PYG有你更精彩!

zxxiaopi 发表于 2025-11-8 12:14:34

感谢分享

linxiansen 发表于 2025-11-8 12:59:38

PYG有你更精彩!

juecky 发表于 2025-11-8 13:07:55

谢谢分享教程

飞天 发表于 2025-11-8 13:26:27

技术大牛,感谢分享。

EE 发表于 2025-11-8 13:45:32

感谢发布原创作品,PYG有你更精彩!

zgj69108 发表于 2025-11-8 17:28:38

PYG有你更精彩!技术大牛!!!!!!
页: [1] 2
查看完整版本: 班主任基本功交流活动-离线问题讨论