1.zoro是一个国外的动漫平台,逆向它是因为混淆的js,并且是返回值加密。

打开网易新闻 查看更多图片

2. 逆向分析

定位播放链接和播放地址的接口,打开开发者工具,找到一个播放的地址,

打开网易新闻 查看更多图片

全局搜索master.m3u8,发现无法搜索和定位到任何内容。说明是有些地方加密返回的,继续往上寻找接口,就找到了一个getsource的接口。

打开网易新闻 查看更多图片

找到接口,就开始逆向这个接口。点击启动器,最后一个点击进入js,发现是混淆的。

打开网易新闻 查看更多图片

尝试搜索decrypt,运气不错,有这样的字段,就尝试打上断点。

打开网易新闻 查看更多图片

刷新页面,进入断点,看堆栈信息,找到关键方法和加密的方法。

打开网易新闻 查看更多图片

到这里就很熟悉了,然后就是替换混淆后的变量名。

打开网易新闻 查看更多图片

替换之后,获取到值,直接传入调用,就直接获取到了播放链接和文件类型。

打开网易新闻 查看更多图片

接着就是m3u8的下载了。

点击查看master.m3u8的返回内容,发现是返回的各种码率的视频地址,也是m3u8。

打开网易新闻 查看更多图片

接着发现请求其中一个码率的m3u8,返回的就是视频的切片信息,这样就可以来处理和下载视频了。

打开网易新闻 查看更多图片

python代码编写

打开网易新闻 查看更多图片

结果展示

打开网易新闻 查看更多图片

逆向完成,m3u8文件切片下载完成,并合并成了一个完整的视频。

仅供学习参考。