ylm_king 发表于 2020-11-21 21:25

aes 中 iv 值的问题

本帖最后由 ylm_king 于 2021-2-6 12:00 编辑

数据:
                   #EXT-X-KEY:METHOD=AES-128,URI="https://play.qiqiuyun.net/sdk_api/video/hls_clef/shd?resNo=0cb54f6a985845hdGl...LCMpvSk&ssl=1",IV=0x83c910ac5fe8d5e0861e75f2b70511fc

问题描述:
                   在进行 解密的时候 ,key 拿到了 ,但是 这个 iv 错误 ,我百度了下,iv 要是 16字节 ,但是 m3u8 文件中是 34字节
                  
------------------------------------------------------------------------------------------------
问题状态:
                   已经解决
记录和总结:
                key 是 一个地址 ,访问地址即可得到。【有二次加密,已逆出来】;
               
            iv 是34位,我是 python 语言 使用 bytes.formhex(iv)即可获得16位二进制的iv

ylm_king 发表于 2020-11-23 20:02

现在 ,我有了一个入口 ,就是 找到 请求 key 和 获取 响应的入口: search (responseText),跟踪回去的内容。网站做了很多日志类的方法,就是跳来跳去的,如果后面我能够解决这个问题,我会把自己的经验分享给大家

syrmb 发表于 2020-11-21 21:31

hex2bytes

ylm_king 发表于 2020-11-21 21:35

好的 , 谢谢老哥 ,我去试下

semors 发表于 2020-11-21 21:55

感谢楼主分享,楼主辛苦了!

江男 发表于 2020-11-21 22:08

qiqiuyun的IV是明文的,但是key是被加密过的,加密代码被混淆过了,很难破解啊

ylm_king 发表于 2020-11-21 22:24

那个 key 我去请求后 返回的是:'2352f8ben6t4694q4q31',但是 长度是 20 ,然后 我补足到24,解密出来 ,无法正常播放解密后的视频
key 是 被加密了吗

Airey 发表于 2020-11-21 22:29

电脑上安装openssl 具体百度。
方法:
如果IV=0x83c910ac5fe8d5e0861e75f2b70511fc
则cmd运行命令
openssl aes-128-cbc -d -in 【ts文件全名】-out 【输出的名字如MP4格式】-nosalt -iv 83c910ac5fe8d5e0861e75f2b70511fc-K[你获取的值]

python方法:
import os
cmd="openssl aes-128-cbc -d -in hc.ts-outnew.mp4-nosalt -iv 83c910ac5fe8d5e0861e75f2b70511fc-K[你获取的值]"
os.system(cmd)

ylm_king 发表于 2020-11-21 22:33

iv的问题 已经 解决了 ,我现在 在 处理 key 为什么 是 20字节的 问题 ,谢谢您回复

江男 发表于 2020-11-21 22:50

找到player.js,有能力可以尝试从混淆的js代码分析出加密函数,毕竟是人家一个网站的数据都靠这个加密保护的,难度可想而知。
页: [1] 2
查看完整版本: aes 中 iv 值的问题