1.zoro是一个国外的动漫平台,逆向它是因为混淆的js,并且是返回值加密。
2. 逆向分析
定位播放链接和播放地址的接口,打开开发者工具,找到一个播放的地址,
全局搜索master.m3u8,发现无法搜索和定位到任何内容。说明是有些地方加密返回的,继续往上寻找接口,就找到了一个getsource的接口。
找到接口,就开始逆向这个接口。点击启动器,最后一个点击进入js,发现是混淆的。
尝试搜索decrypt,运气不错,有这样的字段,就尝试打上断点。
刷新页面,进入断点,看堆栈信息,找到关键方法和加密的方法。
到这里就很熟悉了,然后就是替换混淆后的变量名。
替换之后,获取到值,直接传入调用,就直接获取到了播放链接和文件类型。
接着就是m3u8的下载了。
点击查看master.m3u8的返回内容,发现是返回的各种码率的视频地址,也是m3u8。
接着发现请求其中一个码率的m3u8,返回的就是视频的切片信息,这样就可以来处理和下载视频了。
python代码编写
结果展示
逆向完成,m3u8文件切片下载完成,并合并成了一个完整的视频。
仅供学习参考。