破解某动漫m3u8加密

查看 189|回复 15
作者:jc021227   
一、前言
最近有个新上映的动漫很火,但是——国内没引进,B站外服和类似的网站还都是和谐版,只有jp本土才是完整版,很讨厌
于是我找到能看完整版的网站,而且不光要看,还要下载,好,目标已经明确了
二、侦察
刚打开网站就给我看这个?看来情况比想象的复杂


1.png (28.93 KB, 下载次数: 0)
下载附件
2023-1-9 19:18 上传

一开始以为是检测到使用代{过}{滤}理,后来发现是锁IP,一番折腾后总算进入了网站
F12抓包分析,不出所料是m3u8,aes-128加密


2.png (166.97 KB, 下载次数: 0)
下载附件
2023-1-9 19:19 上传

第一个m3u8里面是好几个不同清晰度的m3u8,区别只有一个参数


3.png (177.59 KB, 下载次数: 0)
下载附件
2023-1-9 19:19 上传

找到包含ts的m3u8,注意#EXT-X-KEY这一行,URI是自定义的格式,肯定要在某个地方处理,但先忽略这个过程,继续翻请求里和key有关的,很快就找到了


4.png (126.08 KB, 下载次数: 0)
下载附件
2023-1-9 19:19 上传



5.png (108.1 KB, 下载次数: 0)
下载附件
2023-1-9 19:19 上传

发现请求的参数lt就是刚才m3u8里的URI,返回的k显然不是真正的key,因为不是16位,但应该有关
这个k是不是固定值呢?经过重复尝试,发现它是个变量,那m3u8应该也不固定,但是。。。整个m3u8却一直不变,本来就不擅长算法,现在更迷惑了,看来逆向算法行不通
三、尝试
看了论坛的一些帖子,大部分思路都是从函数调用栈入手,下断点,分析js,我也先采取这种方法试一下
请求得到参数k之后在什么地方进行处理?看一下调用栈


6.png (164.27 KB, 下载次数: 0)
下载附件
2023-1-9 19:19 上传



7.png (130.22 KB, 下载次数: 0)
下载附件
2023-1-9 19:19 上传

比想象中复杂的多,这个特别大的js直接写在html里,看起来功能只是发送请求,关键代码应该在调用栈中间的部分,但是。。。


8.png (71.57 KB, 下载次数: 0)
下载附件
2023-1-9 19:20 上传

看到这里就知道还原代码几乎不可能了,只好换其他方法(当时没注意到调用栈频繁出现的VM149,其实它就是突破口,但下面是通过另一种思路找到相同的解决方法)
四、灵感
翻看请求的时候,发现了网站使用的播放器


9.png (164.82 KB, 下载次数: 0)
下载附件
2023-1-9 19:20 上传

代码只经过了压缩,没有混淆,解密ts应该也是它做的,如果能定位解密的代码,就离找到密钥不远了
既然是js,那就用Sources打开,结果。。。


10.png (147.9 KB, 下载次数: 1)
下载附件
2023-1-9 19:20 上传

居然是xhr!不是script!暂且不论是不是网站故意挖坑,调试一下子就变得麻烦了
js肯定是在某个VM里执行的,如何定位到这个VM?这时候我灵光一现——很多网站不是喜欢用debugger恶心人吗,我在这个js里加一个debugger,不就找到它在哪了吗?
这个方法真是巧妙,只要它被加载,马上就被断下来,然后在它解密部分的代码下断点,运行到那里,问题就解决了
至于怎么修改响应,方法很多,我用了最简单的Fiddler,先把这个js下载下来,在开头加了一行debugger;,然后打开Fiddler自动回复器,这样填写就可以了


11.png (26.58 KB, 下载次数: 0)
下载附件
2023-1-9 19:20 上传

现在刷新网页,等到这个js被加载,果然断下来了


12.png (135.14 KB, 下载次数: 0)
下载附件
2023-1-9 19:20 上传

然后应该在哪里下断点呢?参考了一些帖子,可以搜索字符串decrypt,发现这里最接近解密的代码


13.png (152.74 KB, 下载次数: 0)
下载附件
2023-1-9 19:21 上传

这段代码比较好理解,参数c非常关键,这里判断c的长度不等于16,就报错“AES-128密钥长度必须为16字节”,显然c就是存储密钥的数组
现在继续运行,等到触发断点,查看变量,果然,c的类型就是Uint8Array(16)


14.png (163.15 KB, 下载次数: 0)
下载附件
2023-1-9 19:21 上传

有了m3u8和key,终于能开始下载了


15.png (132.77 KB, 下载次数: 0)
下载附件
2023-1-9 19:21 上传

最终效果图


16.png (866.34 KB, 下载次数: 0)
下载附件
2023-1-9 19:21 上传

五、结语
本人只是一个前端小白,对于破解更谈不上熟悉,但破解的魅力就在于此——很多时候,你需要的并不是高超的技术,而是独特的思路,和思考中的灵光一现。正是充满了未知和出奇制胜,破解注定不同于循规蹈矩的工作。经过自己的思考最终实现目标,这种成就感也是难以比拟的。

下载次数, 下载附件

Supermexyh   


jc021227 发表于 2023-1-9 23:06
现在貌似只有jp结尾的网站才是未删减版,我看官网上列出来好几个网站都可以看,免费的也有,甚至m3u8都没 ...

要加字幕组的很简单,字幕组都会在官网提供外挂字幕文件的,我下载的这个视频就是字幕组自己下载的无修版视频然后加上字幕压制后上传到动漫BT站点的,在动漫BT站点就能下载到这些资源,都是免费的,非常方便,并且什么番都有,百度动漫花园就能找到,不过目前正版的动漫花园被墙了,百度到的都是模仿网站,正版动漫花园的地址是:https://share.dmhy.org/
Supermexyh   

看完了,很详细,但是咋就是说,有没有更简单的方法可以直接下载到未删减版本,并且还有中文字幕——动漫花园等动漫资源BT网站,你这个方法也太麻烦了吧
PS:只是推荐一个更好的办法,没有其他意思,楼主发这种教程我是很赞同和支持的


goPYTY38om.png (966.77 KB, 下载次数: 0)
下载附件
2023-1-9 22:07 上传

dujiu3611   

感谢感谢,假高手就喜欢这种一步步操作,我照着来,熟悉熟悉,增加记忆,谢谢
MIAIONE   


qq882011 发表于 2023-1-9 19:29
求名!!!!

楼主其实都告诉你了, 看最后控制台标题的 Onii-chan wa Oshima!
fx820   

后记写的太棒了。事实上,入门是最难的
mydeardeskmate   

最难的一步是找个能用的ip,这网站锁ip太严了
qq882011   

求名!!!!
kimchow   

这是我能看的教程吗
tanzhijun8   

谢谢分享
您需要登录后才可以回帖 登录 | 立即注册

返回顶部