点击上方Spiders and AI,选择置顶/星标公众号
干货福利,第一时间送达!
首先在此声明,本文章仅仅用于研究学习,不可用于任何商业活动,否则后果自负。如侵权请与我联系,立即删除。
今日npy
aHR0cHM6Ly9rYW95YW4uaWNvdXJzZTE2My5vcmcvY291cnNlL3Rlcm1zLzE0NjMxOTk0NDYuaHRtP2NvdXJzZUlkPTEwMDMyOTMwMDI=
(这个是我选择的,自己可以用自己的课程)
唠嗑
嗯~~~,没啥好说的,我也不知道说啥~~~,猛男羞涩,哈哈哈哈。
加密分析与定位
下图就是m3u8
文件,但是它又与我们平时见的m3u8
文件不同。
上图就是我们平时见的m3u8
文件
那我们就要解密它了。这里我是通过通用栈寻找加密。
我们进入这个栈。
黄色那个就是该栈定位的地方,我们可以在这个页面看到有secondaryDecrypt
,也就是解密
之类的意思,我也不确定是不是解密之地,先在这里下断点,看是否断在这里。如果是就非常NICE,不是的话就再找。
可以发现已经成功断下,并且这个secondaryDecrypt(e.data, t.videoId)
中的e.data
就是我们看到的m3u8
的数据,t.videoId
为m3u8
的url中video
后面的数字。
我们看一下全选这个,看一下解密后的数据是不是我们常见的m3u8
文件。
嗯~~~,不错呀,就是我们常见的,那我们保存一下这个文件,下载一个ts
文件,看看能不能打开。
ε=(′ο`*)))唉!无语子,打不开,这种情况下,要不是真的损坏了,要不就是加密了。那我们看看这个文件有没有加密的标志性字符。
可以看到上图绿框的,EXT-X-KEY:METHOD=AES-128 ......
但是就发现一个url
,没有key
或者iv
,那key
与iv
在url
里面,那我们就打开一下那个url
,其实这个url
在下面会打开
上图就是打开的url
,这个里面既没有key
,又没有iv
关键词,那可能是被加密的。
这时我们可以发现,在解密那个m3u8
文件的下面,下面还有一个类似的加密,并且它上面有个如下判断if ("manifest" !== o && /hls\/key/.test(a.url))
,并且这个hls\/key
也在那个url
中出现了,那我们继续让我们它运行,看它是否在此断下。
可以发现它断在这里了,没错了,它也是通过这个函数解密的,这个我对比过数据是一样的。,我们看一下它解密后的数据。
就是这个了,不过这里是16进制,我们进到这个加密函数,看看16进制之前的数据。
红框就是16进制前的数据,这里我们就需要这个数据。
但是这个就只有一个数据,并且这个数据为32
位,那这个到底是key
还是iv
呢,这里暂时还无法确定,如果有经验的可以确定它可能是key
,
这说明还要找一下另一参数。这里把之前所有的断点remove
,我是通过ts文件请求的调用栈查找的。这里这个调用栈跟上面用的调用栈是一样的,其实就是上面那个黄色的地方。打上断点,它就断在这里了。
可以看到这里有iv
与key
,但是这个不是字符,这里我们转换一下。
可以看到这里的上图的值与我们url
那个解密出来的一样。那说明那个url
解密的就是key
,这个iv
经过我多次对比发现,它就是那个ts
的序号,比如一个ts是以32
结尾,那就在它前面补14个0
就好了,这样即使它iv
了,是个16为的。这里我使用的是openssl
解密
命令
openssl aes-128-cbc -d -in 文件路径 -out 保存路径 -nosalt -iv 自己的iv -K 自己的key
结果及其演示
END
好了,这一期就到此为止,这个解密还是不难的,没什么环境问题,里面用到的加密也是常见的加解密。
就不说了,我们下期再见!