有个 AES-128-cbc 加密的文件,内有一个 key 文件,不知能否解出来?谢谢。

2017-03-02 23:29:42 +08:00
 sunnyzhi
文件包的 VASR02032853.properties 文件内有一个 96 位 16 进制的 key ,这个 key 的文件信息是否足够解密这些切片文件呢?
key 的内容如下:
#keys
#Thu Mar 02 22:12:41 GMT+08:00 2017

25=C4ADEF542005E68022B4BD1827291177EA10CF028C15D6497CD4647728F33CD0191EEF9F6924AF0A4596ACA323A73E6F



文件在这里: http://pan.baidu.com/s/1cw3P2Q

因为之前解过的文件 AES-128-CBC 的 key 是 32 位的,有 key 和 iv 就可以使用 openssl 解出来,但遇上这个 96 位的 key 就不懂了。
谢谢!
10080 次点击
所在节点    程序员
16 条回复
nilai
2017-03-03 09:37:50 +08:00
AES-128 对应的 KEY 是 16 位
AES-192 对应的 KEY 是 24 位
AES-256 对应的 KEY 是 32 位

CBC 模式下 是需要 IV 的
ljysgpp
2017-03-03 09:49:17 +08:00
您好,可以请教您一个问题吗?我看到您在另一个帖子里说可以 hexdump 工具 dump 出 key ,是指查看这个 key 文件的十六进制的数值吗?
zhujian198
2017-03-03 11:12:36 +08:00
如果破解者有你的程序就比较容易了,即解密“ AES-128-cbc 加密的文件”的程序。只发这个“ AES-128-cbc 加密的文件” 文件是很难破解的。
sunnyzhi
2017-03-03 11:35:09 +08:00
@ljysgpp ,是的,通过 hexdump 查看 key 文件的 16 进制数值。(hexdump -v -e '16/1 "%02x"' key)


@zhujian198 是的,我也在想是不是文件夹的信息不足够解密。可能有部份加密的信息是在客户端里。



app 在这里: http://pan.baidu.com/s/1slyHfEP
(安桌版本,需要脸书帐号登录)

是一个音乐 app ,下载无损音乐后会在 content 的文件夹生成对应每只歌曲的文件夹。我目的是想把内容解密出来拷到其他播放器听。
ljysgpp
2017-03-03 16:31:38 +08:00
@sunnyzhi 我看了您之前的 VAWM02024516-HD.key , hexdump 显示是一个 16 个字节的密钥,我下载下来用您说的方法测试是可以解密的。可是我现在手里有一个 m3u8 ,加密方式是 AES-128 ,下载的 key 用 hexdump 显示是一个 32 个字节的密钥,不知道是为什么了...
sunnyzhi
2017-03-03 16:57:42 +08:00
@ljysgpp
你的 m3u8 里的 “#EXT-X-KEY ”这一行是不是显示"METHOD=AES-128"? 如果 key 是 32 位的有可能是"AES-256"加密的。
ljysgpp
2017-03-03 18:13:25 +08:00
@sunnyzhi 是写的 AES-128 ,但是 key 是 32 位,所以感觉很奇怪
sunnyzhi
2017-03-04 15:54:20 +08:00
今天用 fiddler 抓包,发现了一个 32 位的 contentkey ,但仍是解不开。不知这个 content key 的作用。

VASR02032852 的 contenkey
","contentKey":"06AC04970F0404443FFB9F3C41606338
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 ,是要用哪一个
ocw
2017-03-09 22:36:46 +08:00
另外你之前的那个音乐的其实直接用 potplayer 直接就能自动解析播放
ocw
2017-03-09 22:53:48 +08:00
huaderui
2017-03-11 19:35:28 +08:00
你解密视频的 ts 文件是怎么批量解密的。
sunnyzhi
2017-03-14 22:31:36 +08:00
@ocw, iv 值是 32 位的,开头两位“ 0X ”不要。
openssl aes-128-cbc -d -in new_0.ts -out media_decryptd_0.ts
-nosalt -iv 00000000000000000000000000000001 -K e8599247ff3327aced6402ddf78a577e


近期比较忙,有空再折腾这个东西,不过我估计有些流媒体有 DRM 保护,基本是没办法解出来的。
ocw
2017-03-16 00:20:36 +08:00
我的 ok 了, moov 网页版你试试看,老方法成功破解
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 长度对不上,肯定是做了其他处理的
iOSyongqian
2021-04-12 18:45:32 +08:00
@Subdue 我最近就是在一个 AES-128 的 m3u 文件中得到一个 32 字节大小的 key 文件,但是 AES.py 源文件中有提示
It must be 16 (*AES-128*), 24 (*AES-192*), or 32 (*AES-256*) bytes long.
因此也觉得很诡异

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/344476

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX