1
nilai 2017-03-03 09:37:50 +08:00
AES-128 对应的 KEY 是 16 位
AES-192 对应的 KEY 是 24 位 AES-256 对应的 KEY 是 32 位 CBC 模式下 是需要 IV 的 |
2
ljysgpp 2017-03-03 09:49:17 +08:00
您好,可以请教您一个问题吗?我看到您在另一个帖子里说可以 hexdump 工具 dump 出 key ,是指查看这个 key 文件的十六进制的数值吗?
|
3
zhujian198 2017-03-03 11:12:36 +08:00
如果破解者有你的程序就比较容易了,即解密“ AES-128-cbc 加密的文件”的程序。只发这个“ AES-128-cbc 加密的文件” 文件是很难破解的。
|
4
sunnyzhi OP @ljysgpp ,是的,通过 hexdump 查看 key 文件的 16 进制数值。(hexdump -v -e '16/1 "%02x"' key)
@zhujian198 是的,我也在想是不是文件夹的信息不足够解密。可能有部份加密的信息是在客户端里。 app 在这里: http://pan.baidu.com/s/1slyHfEP (安桌版本,需要脸书帐号登录) 是一个音乐 app ,下载无损音乐后会在 content 的文件夹生成对应每只歌曲的文件夹。我目的是想把内容解密出来拷到其他播放器听。 |
5
ljysgpp 2017-03-03 16:31:38 +08:00
@sunnyzhi 我看了您之前的 VAWM02024516-HD.key , hexdump 显示是一个 16 个字节的密钥,我下载下来用您说的方法测试是可以解密的。可是我现在手里有一个 m3u8 ,加密方式是 AES-128 ,下载的 key 用 hexdump 显示是一个 32 个字节的密钥,不知道是为什么了...
|
6
sunnyzhi OP @ljysgpp
你的 m3u8 里的 “#EXT-X-KEY ”这一行是不是显示"METHOD=AES-128"? 如果 key 是 32 位的有可能是"AES-256"加密的。 |
8
sunnyzhi OP 今天用 fiddler 抓包,发现了一个 32 位的 contentkey ,但仍是解不开。不知这个 content key 的作用。
VASR02032852 的 contenkey ","contentKey":"06AC04970F0404443FFB9F3C41606338 |
9
ocw 2017-03-09 22:35:24 +08:00
@sunnyzhi 你好,我在你之前的回复看到你好像解析成功了,我解析的时候 openssl 总是显示 hex string is too long
invalid hex iv value ,这是我的解析代码 C:\OpenSSL-Win32\bin>openssl aes-128-cbc -d -in new_0.ts -out media_decryptd_0.ts -nosalt -iv 0x00000000000000000000000000000001 -K e8599247ff3327aced6402ddf78a577e , 能不能说下你 oepnssl 具体是怎么配置的,我用的是 openssl win32 ,官网还有个 openssl-1.1.0e ,是要用哪一个 |
10
ocw 2017-03-09 22:36:46 +08:00
另外你之前的那个音乐的其实直接用 potplayer 直接就能自动解析播放
|
11
ocw 2017-03-09 22:53:48 +08:00
|
12
huaderui 2017-03-11 19:35:28 +08:00
你解密视频的 ts 文件是怎么批量解密的。
|
13
sunnyzhi OP @ocw, iv 值是 32 位的,开头两位“ 0X ”不要。
openssl aes-128-cbc -d -in new_0.ts -out media_decryptd_0.ts -nosalt -iv 00000000000000000000000000000001 -K e8599247ff3327aced6402ddf78a577e 近期比较忙,有空再折腾这个东西,不过我估计有些流媒体有 DRM 保护,基本是没办法解出来的。 |
14
ocw 2017-03-16 00:20:36 +08:00
我的 ok 了, moov 网页版你试试看,老方法成功破解
|
15
Subdue 2020-08-21 18:41:38 +08:00
17 年的问题,20 年给个说法,aes-128-cbc 模式下要 16 位的 key 和 iv,这个 16 位指的是 16 位字节串,而不是 16 进制字符串,这个非常重要,一般 m3u8 有给 32 位的 16 进制字符串,通过 linux 命令 openssl -iv -K 参数可以直接指定 32 位的 16 进制字符串,不过 python,java 或者是其他的代码里面是不能直接指定 32 位的 16 进制字符串,所谓的 16 位 key 和 iv,恰恰是 32 位的 16 进制字符串的 16 位字节串表示,也就是 32 位 16 进制字符串==16 位字节串,网络有很多关于 m3u8 解密的文章,但是他们采取的做法都是把 32 位的 16 进制字符串直接截取前面一半作为 key 和 iv,我就想不懂,这怎么能解密 m3u8 视频,没有看到一篇文章是讲讲转换的事的,AES-128-cbc 对应的是 key 是 16 位的***字节串***,如果得到的 key 长度对不上,肯定是做了其他处理的
|
16
iOSyongqian 2021-04-12 18:45:32 +08:00
|