XX通视频的倍速播放最高只提供了2倍播放,但是video的倍速播放通常都是在本地控制的,如何把它调成任意倍数呢
初步分析
- 选中video
- 切换至console面板
- $0是之前选中的video元素
- $0.playbackRage 获取当前的播放倍数
- $0.playbackRage = 10 修改为10倍试一下
- $0.playbackRage 再次获取一下发现设置失败
查看相关JS
上面试图修改playbackRage以失败告终,那就只好打开network面板再分析一下了
- 先找与video相关的js(嫌疑最大)
- video.min.js通常是第三方库,先不看
- video-ext.min.js比较可疑,进去看看
- 代码很乱
- 格式化一下,但依旧很乱
- 格式化后的video-ext.min.js如下图
调试1
这是丑化过的代码,如何下手呢,还是以playbackRage为线索,因为再怎么丑化代码,playbackRage是无法用其他字符代替的,搜索一下
- 来到搜索到playbackRage的地方
- 310行打上断点
- 看样子是修改倍数的时候调用的
- 试图修改倍数
- 发现命中断点
- 但是命中断点的时候倍数发现已经生效了,推测应该是在此断点之前就已经修改过了
调试2
倍数是在哪里修改的呢,找了半天才想到看调用栈,终于找到了可疑的地方,如下图
- 进入_0x23b26d,如下图
- 9704行打上断点,再重新修改倍数试一下
- 发现先直接命中了这个断点
调试3
下面的操作纯属碰碰运气
- _0x4acc9b的值是1.5,貌似是设置的播放倍数
- 那就修改它,我把它改成了4
- 控制台里直接_0x4acc9b=4就可以改掉它
- 放开断点
- 发现进入到最开始设置的那个断点
- 逐步执行时发现了一个可疑的地方,如下图
- _0x485370的值是2,可能是倍数最大值
- 修改_0x485370 = 4
- 断点放行
最后再祭出大招Fiddler,改写JS,就可以一劳永逸啦