上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
12下一页
返回列表 发新帖

[油猴脚本开发指南]超底层注入videojs

[复制链接]
  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2022-3-10 15:34:48 | 显示全部楼层 | 阅读模式

    前文

    觉得不继续分析太可惜了

    枉我之前读了一上午videojs源码

    壳儿,我就是这么真。

    开始分析

    我们之前利用的是Component.registerComponent来进行组件替换Player函数

    进行构造前和构造后的劫持

    但是超星新一次的更新过程中registerComponent进行了过滤

    只要发现在替换name为Player即直接return

    难道我们就要束手无策了么?

    新的风暴已经出现!

    我们怎能停滞不前?!

    我们总结registerComponent的核心代码其实就两句

            Component.components_[name] = ComponentToRegister;
            Component.components_[toLowerCase(name)] = ComponentToRegister;

    其他的代码都是在做校验

    也就是说最后是往

    Component.components_

    进行赋值

    那Component是啥

    查阅源码可以找到

    图片.png

    这里Component是一个函数,然后获取了他的原型链叫_proto

    图片.png

    之后做大量的赋值处理

    图片.png

    我们拖到最后发现发做完各种函数和原型函数处理,返回了Component

    那么我们看看返回给了谁

    图片.png

    返回给了Component$1

    然后再下面两句做了一下兼容性处理

    最后registerComponent自身

    等等,自身?

    那我们通过GetComponent岂不是就能拿到Component$1

    再直接找到components里修改Player

    这样就绕过了registerComponent函数的过滤检测

    理论建立完毕

    实践开始

            let OriginPlayer = _self.videojs.getComponent('Player')
            let woailiyinhe = function (tag, options, ready) {
                let player = OriginPlayer.call(this, tag, options, ready)
                return player;
            }
            woailiyinhe.prototype = Object.create(OriginPlayer.prototype)
            _self.videojs.getComponent('Component').components_['Player'] = woailiyinhe

    秒杀!

    附注

    你不仅仅可以修改Player

    也可以考虑对其他的一些你想劫持的函数进行劫持

    这几篇的核心意义不是在教大家修改videojs

    而是在教大家如果通过阅读源码提升自我

    以后碰到其他的问题,处理也会更加得心应手

    结语

    啾咪~

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。

    该用户从未签到

    0

    主题

    3

    回帖

    13

    积分

    助理工程师

    积分
    13
    发表于 2022-3-10 16:35:55 | 显示全部楼层
    支持加油
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-3-25 15:30
  • 签到天数: 135 天

    [LV.7]常住居民III

    4

    主题

    109

    回帖

    206

    积分

    荣誉开发者

    积分
    206

    荣誉开发者油中2周年

    发表于 2022-3-10 17:27:47 | 显示全部楼层
    ggnb
    下一波和谐还远吗
    可恃唯我
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2022-3-10 17:38:16 | 显示全部楼层
    cocang 发表于 2022-3-10 17:27
    ggnb
    下一波和谐还远吗

    不知道...
    我能感觉超星追着我搞
    但是其实他们对videojs理解程度一般
    只要想hook
    光手里现在就还有三四种方法做注入
    只是害怕法律风险了
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    3

    回帖

    13

    积分

    助理工程师

    积分
    13
    发表于 2022-3-10 18:37:38 | 显示全部楼层
    geigei,新人不了解,在哪安排呀
    回复

    使用道具 举报

  • TA的每日心情
    难过
    2023-11-10 20:40
  • 签到天数: 90 天

    [LV.6]常住居民II

    0

    主题

    33

    回帖

    92

    积分

    初级工程师

    积分
    92
    发表于 2022-3-10 18:59:56 | 显示全部楼层
    李恒道 发表于 2022-3-10 17:38
    不知道...
    我能感觉超星追着我搞
    但是其实他们对videojs理解程度一般

    好家伙,要加班喽
    回复

    使用道具 举报

  • TA的每日心情
    难过
    2023-11-10 20:40
  • 签到天数: 90 天

    [LV.6]常住居民II

    0

    主题

    33

    回帖

    92

    积分

    初级工程师

    积分
    92
    发表于 2022-3-10 19:05:25 | 显示全部楼层
    李恒道 发表于 2022-3-10 17:38
    不知道...
    我能感觉超星追着我搞
    但是其实他们对videojs理解程度一般

    对了,像秒过视频的操作还会有吗啊
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2022-3-10 19:09:42 | 显示全部楼层
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2022-3-10 19:10:00 | 显示全部楼层
    橙风啊 发表于 2022-3-10 19:05
    对了,像秒过视频的操作还会有吗啊

    看情况吧...
    继续针对我就不准备维护了
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5961

    回帖

    6760

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6760

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2022-3-10 19:10:08 | 显示全部楼层
    橙风啊 发表于 2022-3-10 19:05
    对了,像秒过视频的操作还会有吗啊

    现在秒过理论应该好使
    我没测
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表